pyquery的安裝:
ubtuntu和windows下安裝lxml:pip3 install pyquery
驗(yàn)證安裝:安裝完成,在python命令行下輸入import pyquery?沒有報(bào)錯(cuò),證明庫(kù)已經(jīng)安裝好了。
pyquery的介紹:
PyQuery庫(kù)也是一個(gè)非常強(qiáng)大又靈活的網(wǎng)頁(yè)解析庫(kù),如果你有前端開發(fā)經(jīng)驗(yàn)的,都應(yīng)該接觸過jQuery,那么PyQuery就是你非常絕佳的選擇,PyQuery 是 Python 仿照 jQuery 的嚴(yán)格實(shí)現(xiàn)。語(yǔ)法與 jQuery 幾乎完全相同,所以不用再去費(fèi)心去記一些奇怪的方法。
pyquery的官網(wǎng):
http://pyquery.readthedocs.io
pyquery的常用操作:
(1)pyquery常見的初始化方式:傳入字符串初始化;傳入U(xiǎn)RL初始化,傳入文件名初始化等
傳入字符串初始化:
from pyquery import PyQuery
html = '''
-
first item
-
second item
-
third item
-
fourth item
-
fifth item
'''
doc = PyQuery(html)#html變量是一個(gè)字符串類型,作為參數(shù)用來初始化
print(doc)
print(type(doc))
print(doc('li'))
傳入URL初始化:
from pyquery import PyQuery
doc = PyQuery('https://www.baidu.com')
# doc1 = pq(url='https://www.baidu.com')
print(doc)
print(doc('head'))
傳入文件名初始化:
from pyquery import PyQuery
doc = PyQuery(filename='./test.html')
print(doc('head'))
(2)pyquery基于CSS選擇器進(jìn)行查找
規(guī)則:
from pyquery import PyQuery
html = '''
-
first item
-
second item
-
third item
-
fourth item
-
fifth item
'''
doc = PyQuery(html)
print(doc)
#id等于haha下面的class等于item-0下的a標(biāo)簽下的span標(biāo)簽(注意層級(jí)關(guān)系以空格隔開)
print(doc('#haha .item-0 a span'))
(3)DOM操作(或者叫節(jié)點(diǎn)操作)
屬性的增刪操作:
from pyquery import PyQuery
html = '''
-
first item
-
second item
-
third item
-
fourth item
-
fifth item
'''
doc = PyQuery(html)
li = doc('.item-0.active')
print(li)
#刪除classactive
print(li.removeClass('active'))
#增加class屬性eee
print(li.addClass('eee'))
attr、text、html、css:
當(dāng)然,除了操作class這個(gè)屬性外,也可以用attr()方法對(duì)屬性進(jìn)行操作。此外,還可以用text()和html()方法來改變節(jié)點(diǎn)內(nèi)容的內(nèi)容,使用css()方法對(duì)css屬性進(jìn)行操作
from pyquery import PyQuery
html = '''
-
first item
-
second item
-
third item
-
fourth item
-
fifth item
'''
doc = PyQuery(html)
li = doc('.item-0.active')
print(li)
print(li.attr('id','id_test'))
print(li.text('changed item'))
print(li.css('font-size','20px'))
print(li.html('
changed item'))
為了方便理解,這是運(yùn)行截圖:
?
remove:
刪除某個(gè)標(biāo)簽,在爬取過程中我們通常爬去一下標(biāo)簽或者內(nèi)容下來的時(shí)候總會(huì)有些不想要的標(biāo)簽,這個(gè)時(shí)候我們可以用下面的類似方法刪除這個(gè)標(biāo)簽
from pyquery import PyQuery
html = '''
-
first item
-
second item
-
third item
-
fourth item
-
fifth item
'''
doc = PyQuery(html)
data = doc('.content')
print(data.text())
#刪除所有a標(biāo)簽
data.find('a').remove()
#再次打印
print(data.text())
其實(shí)還有很多節(jié)點(diǎn)操作方法,比如append(),empty()和prepend()等方法(其實(shí)這些方法在爬蟲基本用不到),她們和jquery()方法一致,詳細(xì)的用法可以參考文檔http://pyquery.readthedocs.io/en/latest/api.html
?
其實(shí)還有很多,不過基本都用不到,在爬蟲的時(shí)候。哈哈哈,其實(shí),我也就知道這么多
?
?
?
?
?
?
?
?
?
?
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
