Python中parsel兩種獲取數(shù)據(jù)方式小結(jié)
??網(wǎng)頁(yè)解析利器parsel實(shí)戰(zhàn)
我們以實(shí)際的案例,來具體了解學(xué)習(xí)其功能。我們?cè)谶@里重點(diǎn)講解其兩種方式。一個(gè)是XPATH,一個(gè)是CSS。我們以某網(wǎng)為例,獲取其新聞標(biāo)題。
?? parsel簡(jiǎn)介
Parsel是一個(gè)用于解析JSON數(shù)據(jù)的Python庫(kù)。它提供了一個(gè)簡(jiǎn)單易用的API,可以輕松地從JSON文件或字符串中解析數(shù)據(jù)??梢詫?duì) HTML 和 XML 進(jìn)行解析,并支持使用 XPath 和 CSS Selector 對(duì)內(nèi)容進(jìn)行提取和修改,同時(shí)它還融合了正則表達(dá)式提取的功能。功能靈活而又強(qiáng)大。
??發(fā)送請(qǐng)求
我們先確定目標(biāo)網(wǎng)址,我們?yōu)榱俗屝率指玫膶W(xué)習(xí),我們這里以中國(guó)新聞網(wǎng)為例,不講太復(fù)雜的案例。如果,想更好的提升自己,可以嘗試學(xué)習(xí)我之前發(fā)的文章。這篇文章使用的方法也是parsel。
我們發(fā)送請(qǐng)求,獲取數(shù)據(jù)。我們相信大家這里的代碼都會(huì)寫了。
import parsel import requests url = 'https://www.xxxxx.com/importnews.html' responses = requests.get(url) responses.encoding=responses.apparent_encoding print(responses.text)
我們使用requests.get()
函數(shù)來發(fā)送HTTP請(qǐng)求,并將響應(yīng)存儲(chǔ)在responses
變量中。在這個(gè)例子中,我們將響應(yīng)的文本內(nèi)容存儲(chǔ)在responses.text
變量中。
??解析數(shù)據(jù)
我們獲取到了網(wǎng)頁(yè)源代碼之后,我們使用parsel方法對(duì)其解析,處理網(wǎng)頁(yè)源代碼。
selector = parsel.Selector(responses.text)
我們使用 parsel
庫(kù)的 Selector
對(duì)象來選擇 responses.text
中的特定元素。
我們使用開發(fā)者工具,觀察標(biāo)題在哪個(gè)標(biāo)簽位置里面。
?編輯
由上圖,我們可以看到,我們標(biāo)題信息就在
- 標(biāo)簽里面。我們可以提取
- 標(biāo)簽里面所有的內(nèi)容。在這里,我們只獲取新聞的標(biāo)題內(nèi)容。下面我們將用兩種方式獲取。
?XPATH方式
我們很容易獲取到了標(biāo)簽所在的位置,大家不會(huì)寫的話,可以右擊copy—xpath。我們來寫代碼。
titles = selector.xpath('/html/body/div[4]/div[1]/div[2]/ul/li/div[2]/a/text()').getall()
xpath
方法是 Selector
對(duì)象中的一個(gè)方法,用于指定 XPath 表達(dá)式,它可以用于選擇 HTML 元素。在這個(gè)例子中,我們使用 xpath
方法來選擇 /html/body/div[4]/div[1]/div[2]/ul/li/div[2]/a/text()
表達(dá)式指定的所有 <a>
元素,并將它們的文本內(nèi)容作為列表返回。
我們這里會(huì)得到一個(gè)所有新聞的標(biāo)題列表,我們for遍歷一下。我們看看效果。
?CSS方法
我們剛剛用了XPATH的方法獲取新聞的標(biāo)題,我們接下來,我們使用CSS的方法來獲取標(biāo)題。
我們這里,直接寫代碼了。
titles = selector.css('ul > li > div.dd_bt a::text').getall()
css
方法是 Selector
對(duì)象中的一個(gè)方法,用于指定 CSS 屬性,它可以用于選擇 HTML 元素。在這個(gè)例子中,我們使用 css
方法來選擇 ul > li > div.dd_bt a
表達(dá)式指定的所有 <a>
元素的文本,并將它們的樣式作為列表返回。
我們CSS語(yǔ)法還可以這樣寫。
titles = selector.css('.dd_bt a::text').getall()
css
方法是 Selector
對(duì)象中的一個(gè)方法,用于指定 CSS 屬性,它可以用于選擇 HTML 元素。在這個(gè)例子中,我們使用 css
方法來選擇 .dd_bt a::text
表達(dá)式指定的所有 <a>
元素,并將它們的文本內(nèi)容作為列表返回。
我們會(huì)發(fā)現(xiàn)是一樣的效果,不管怎么樣,大家都要會(huì)一種方法。
??總結(jié)
在parsel實(shí)戰(zhàn)中,我完成了一個(gè)使用 parsel
庫(kù)的選擇器來選擇 特定元素的內(nèi)容。在這個(gè)實(shí)戰(zhàn)中,我使用了 xpath
和 css
方法來指定選擇的元素的位置和樣式,使用 Selector
對(duì)象來指定選擇的元素,并使用 getall
方法來獲取選擇的所有元素。
首先,我們需要更好地理解 xpath
和 css
方法的使用,以便更準(zhǔn)確地選擇元素。其次,我們需要更好地理解 Selector
對(duì)象的使用,以便更準(zhǔn)確地指定選擇的元素。
?到此這篇關(guān)于Python中parsel兩種獲取數(shù)據(jù)方式小結(jié)的文章就介紹到這了,更多相關(guān)Python parsel獲取內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Linux系統(tǒng)(CentOS)下python2.7.10安裝
這篇文章主要為大家詳細(xì)介紹了Linux系統(tǒng)(CentOS)下python2.7.10安裝圖文教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-09-09Django celery異步任務(wù)實(shí)現(xiàn)代碼示例
這篇文章主要介紹了Django celery異步任務(wù)實(shí)現(xiàn)代碼示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11淺談Python3.10 和 Python3.9 之間的差異
多年來,Python 進(jìn)行了大量升級(jí),并且在新版本中添加了許多功能。本文就詳細(xì)的介紹 一下Python3.10 和 Python3.9差異,感興趣的朋友可以了解一下2021-09-09詳解python實(shí)現(xiàn)識(shí)別手寫MNIST數(shù)字集的程序
這篇文章主要介紹了詳解python實(shí)現(xiàn)識(shí)別手寫MNIST數(shù)字集的程序,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-08-08python量化之搭建Transformer模型用于股票價(jià)格預(yù)測(cè)
這篇文章主要介紹了python量化之搭建Transformer模型用于股票價(jià)格預(yù)測(cè),文章圍繞主題展開基于python搭建Transformer,需要的小伙伴可以參考一下2022-05-05Linux下將Python的Django項(xiàng)目部署到Apache服務(wù)器
這篇文章主要介紹了Python的Django項(xiàng)目部署到Apache服務(wù)器上的要點(diǎn)總結(jié),文中針對(duì)的是wsgi連接方式,需要的朋友可以參考下2015-12-12簡(jiǎn)單實(shí)現(xiàn)python進(jìn)度條腳本
這篇文章主要教大家如何簡(jiǎn)單實(shí)現(xiàn)python進(jìn)度條,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-12-12Python?中的對(duì)象析構(gòu)函數(shù)__del__?詳情
這篇文章主要介紹了Python?中的對(duì)象析構(gòu)函數(shù)del詳情,Python?中的類的構(gòu)造函數(shù)???__init__???,?每當(dāng)實(shí)例產(chǎn)生就會(huì)調(diào)用這個(gè)構(gòu)造函下面更多相關(guān)內(nèi)容,需要的小伙伴可以參考一下2022-03-03