日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

beautifulsoup网页爬虫解析_Python爬虫神器:PyQuery,解析网页更简单,小白也能学会

發(fā)布時(shí)間:2023/12/10 python 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 beautifulsoup网页爬虫解析_Python爬虫神器:PyQuery,解析网页更简单,小白也能学会 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

圖/文:迷神

我們做python爬蟲,通過requests抓取到內(nèi)容就需要正則匹配,或者其他解析庫(kù)解析內(nèi)容。很多可能和我一樣的人,都使用jquery的,那用的還是非常爽的。而pyquery庫(kù)就是jQuery的Python實(shí)現(xiàn),能夠以jQuery的語(yǔ)法來操作解析 HTML 文檔,易用性和解析速度都不錯(cuò)。

雖然,Beautiful Soup 中可以使用 CSS 選擇器,但是好像他的 CSS 選擇器并沒有想像中的強(qiáng)大,PyQuery反而更優(yōu)一些,因此,我們來說說,Python爬蟲神器:PyQuery。

PyQuery庫(kù)官方文檔

官方文檔:https://pyquery.readthedocs.io/en/latest/

PyPI:https://pypi.org/project/pyquery/

Github:https://github.com/gawel/pyquery

1、PyQuery初始化內(nèi)容

PyQuery初始化有3種形式:

1.1、直接初始化requests返回的html內(nèi)容

from pyquery import PyQuery as pq#初始化為PyQuery對(duì)象doc = pq(html)print(type(doc))print(doc)

1.2、直接讀取文件的形式

#filename參數(shù)為html文件路徑doc = pq(filename = 'test.html')print(type(doc))print(doc)

1.3、讀取網(wǎng)址的形式

doc = pq(url = 'https://www.toutiao.com')print(type(doc))print(doc)

2、常用CSS選擇器:

pyquery強(qiáng)大的地方,就是在于使用了類似jquery一樣的選擇,進(jìn)行網(wǎng)頁(yè)節(jié)點(diǎn)解析。

html = """ Python 大法 好 """

獲取id為object-1的標(biāo)簽

print(doc('#object-1'))#返回:好#還可以:print(doc('#container #object-1'))

獲取class為object-1的標(biāo)簽

print(doc('.object-1'))#返回:Python

獲取ul標(biāo)簽:

print(doc('ul'))#返回Python大法好

如果獲取多個(gè)li,可以遍歷:

a = doc('li')for item in a.items(): print(item)

其他的我們還可以查找節(jié)點(diǎn)

我們接著介紹一下常用的查找函數(shù),這些查找函數(shù)最贊的地方就是它們和 JQuery 的用法完全一致。

find() : 查找節(jié)點(diǎn)的所有子孫節(jié)點(diǎn)。

children() : 只查找子節(jié)點(diǎn)。

parent() : 查找父節(jié)點(diǎn)。

parents() : 查找祖先節(jié)點(diǎn)。

siblings() : 查找兄弟節(jié)點(diǎn)。

3、獲取標(biāo)簽的信息

我們?cè)诙ㄎ坏侥繕?biāo)之后,就需要獲取標(biāo)簽的內(nèi)容信息,常用的有:

3.1、attr() 獲取屬性,返回屬性值

object_2 = doc.find('.object-2')print(object_2.attr('class'))#返回object-2

3.2、text() 標(biāo)簽的文本

object_1 = docs.find('.object-1')print(object_1.text())#返回Python

當(dāng)然pyquery還有很多,比如remove去掉節(jié)點(diǎn)內(nèi)容,獲取url網(wǎng)址的,還可以自定義cookie和header等。

Beautiful Soup 對(duì)新手比較友好,pyquery對(duì)用過jquery的來說,更簡(jiǎn)單更方便,是一個(gè)非常不錯(cuò)的選擇。

好了,就這么多啦,我是迷神,更多精彩python內(nèi)容,可以關(guān)注我哦,有問題也可以評(píng)論哦。

總結(jié)

以上是生活随笔為你收集整理的beautifulsoup网页爬虫解析_Python爬虫神器:PyQuery,解析网页更简单,小白也能学会的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。