beautifulsoup网页爬虫解析_Python爬虫神器:PyQuery,解析网页更简单,小白也能学会
圖/文:迷神
我們做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-23.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)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 支付宝备用金晚一天还会怎样?有宽限期吗?
- 下一篇: python爬虫框架scrapy实例详解