pyquery的安裝:
ubtuntu和windows下安裝lxml:pip3 install pyquery
驗(yàn)證安裝:安裝完成,在python命令行下輸入import pyquery?沒有報錯,證明庫已經(jīng)安裝好了。
pyquery的介紹:
PyQuery庫也是一個非常強(qiáng)大又靈活的網(wǎng)頁解析庫,如果你有前端開發(fā)經(jīng)驗(yàn)的,都應(yīng)該接觸過jQuery,那么PyQuery就是你非常絕佳的選擇,PyQuery 是 Python 仿照 jQuery 的嚴(yán)格實(shí)現(xiàn)。語法與 jQuery 幾乎完全相同,所以不用再去費(fèi)心去記一些奇怪的方法。
pyquery的官網(wǎng):
http://pyquery.readthedocs.io
pyquery的常用操作:
(1)pyquery常見的初始化方式:傳入字符串初始化;傳入URL初始化,傳入文件名初始化等
傳入字符串初始化:
from pyquery import PyQuery
html = '''
-
first item
-
second item
-
third item
-
fourth item
-
fifth item
'''
doc = PyQuery(html)#html變量是一個字符串類型,作為參數(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)簽(注意層級關(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這個屬性外,也可以用attr()方法對屬性進(jìn)行操作。此外,還可以用text()和html()方法來改變節(jié)點(diǎn)內(nèi)容的內(nèi)容,使用css()方法對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:
刪除某個標(biāo)簽,在爬取過程中我們通常爬去一下標(biāo)簽或者內(nèi)容下來的時候總會有些不想要的標(biāo)簽,這個時候我們可以用下面的類似方法刪除這個標(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ù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

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