Python中parsel兩種獲取數(shù)據(jù)方式小結(jié)
??網(wǎng)頁解析利器parsel實戰(zhàn)
我們以實際的案例,來具體了解學(xué)習(xí)其功能。我們在這里重點(diǎn)講解其兩種方式。一個是XPATH,一個是CSS。我們以某網(wǎng)為例,獲取其新聞標(biāo)題。
?? parsel簡介
Parsel是一個用于解析JSON數(shù)據(jù)的Python庫。它提供了一個簡單易用的API,可以輕松地從JSON文件或字符串中解析數(shù)據(jù)??梢詫?HTML 和 XML 進(jìn)行解析,并支持使用 XPath 和 CSS Selector 對內(nèi)容進(jìn)行提取和修改,同時它還融合了正則表達(dá)式提取的功能。功能靈活而又強(qiáng)大。
??發(fā)送請求
我們先確定目標(biāo)網(wǎng)址,我們?yōu)榱俗屝率指玫膶W(xué)習(xí),我們這里以中國新聞網(wǎng)為例,不講太復(fù)雜的案例。如果,想更好的提升自己,可以嘗試學(xué)習(xí)我之前發(fā)的文章。這篇文章使用的方法也是parsel。
我們發(fā)送請求,獲取數(shù)據(jù)。我們相信大家這里的代碼都會寫了。
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請求,并將響應(yīng)存儲在responses變量中。在這個例子中,我們將響應(yīng)的文本內(nèi)容存儲在responses.text變量中。
??解析數(shù)據(jù)
我們獲取到了網(wǎng)頁源代碼之后,我們使用parsel方法對其解析,處理網(wǎng)頁源代碼。
selector = parsel.Selector(responses.text)
我們使用 parsel 庫的 Selector 對象來選擇 responses.text 中的特定元素。
我們使用開發(fā)者工具,觀察標(biāo)題在哪個標(biāo)簽位置里面。

?編輯
由上圖,我們可以看到,我們標(biāo)題信息就在
- 標(biāo)簽里面。我們可以提取
- 標(biāo)簽里面所有的內(nèi)容。在這里,我們只獲取新聞的標(biāo)題內(nèi)容。下面我們將用兩種方式獲取。
?XPATH方式

我們很容易獲取到了標(biāo)簽所在的位置,大家不會寫的話,可以右擊copy—xpath。我們來寫代碼。
titles = selector.xpath('/html/body/div[4]/div[1]/div[2]/ul/li/div[2]/a/text()').getall()xpath 方法是 Selector 對象中的一個方法,用于指定 XPath 表達(dá)式,它可以用于選擇 HTML 元素。在這個例子中,我們使用 xpath 方法來選擇 /html/body/div[4]/div[1]/div[2]/ul/li/div[2]/a/text() 表達(dá)式指定的所有 <a> 元素,并將它們的文本內(nèi)容作為列表返回。
我們這里會得到一個所有新聞的標(biāo)題列表,我們for遍歷一下。我們看看效果。

?CSS方法
我們剛剛用了XPATH的方法獲取新聞的標(biāo)題,我們接下來,我們使用CSS的方法來獲取標(biāo)題。

我們這里,直接寫代碼了。
titles = selector.css('ul > li > div.dd_bt a::text').getall()css 方法是 Selector 對象中的一個方法,用于指定 CSS 屬性,它可以用于選擇 HTML 元素。在這個例子中,我們使用 css 方法來選擇 ul > li > div.dd_bt a 表達(dá)式指定的所有 <a> 元素的文本,并將它們的樣式作為列表返回。
我們CSS語法還可以這樣寫。
titles = selector.css('.dd_bt a::text').getall()css 方法是 Selector 對象中的一個方法,用于指定 CSS 屬性,它可以用于選擇 HTML 元素。在這個例子中,我們使用 css 方法來選擇 .dd_bt a::text 表達(dá)式指定的所有 <a> 元素,并將它們的文本內(nèi)容作為列表返回。

我們會發(fā)現(xiàn)是一樣的效果,不管怎么樣,大家都要會一種方法。
??總結(jié)
在parsel實戰(zhàn)中,我完成了一個使用 parsel 庫的選擇器來選擇 特定元素的內(nèi)容。在這個實戰(zhàn)中,我使用了 xpath 和 css 方法來指定選擇的元素的位置和樣式,使用 Selector 對象來指定選擇的元素,并使用 getall 方法來獲取選擇的所有元素。
首先,我們需要更好地理解 xpath 和 css 方法的使用,以便更準(zhǔn)確地選擇元素。其次,我們需要更好地理解 Selector 對象的使用,以便更準(zhǔn)確地指定選擇的元素。
?到此這篇關(guān)于Python中parsel兩種獲取數(shù)據(jù)方式小結(jié)的文章就介紹到這了,更多相關(guān)Python parsel獲取內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python實現(xiàn)把xml或xsl轉(zhuǎn)換為html格式
這篇文章主要介紹了Python實現(xiàn)把xml或xsl轉(zhuǎn)換為html格式,本文直接給出實現(xiàn)代碼,需要的朋友可以參考下2015-04-04
Python 在 VSCode 中使用 IPython Kernel 的方法詳解
這篇文章主要介紹了Python 在 VSCode 中使用 IPython Kernel 的方法,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-09-09
python Manager 之dict KeyError問題的解決
今天小編就為大家分享一篇python Manager 之dict KeyError問題的解決,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-12-12
python 多進(jìn)程通信模塊的簡單實現(xiàn)
這篇文章主要介紹了python 多進(jìn)程通信模塊的簡單實現(xiàn),需要的朋友可以參考下2014-02-02
在Django中管理Users和Permissions以及Groups的方法
這篇文章主要介紹了在Django中管理Users和Permissions以及Groups的方法,Django是最具人氣的Python web開發(fā)框架,需要的朋友可以參考下2015-07-07
Python BeautifulSoup中文亂碼問題的2種解決方法
這篇文章主要介紹了Python BeautifulSoup中文亂碼問題的2種解決方法,需要的朋友可以參考下2014-04-04

