pyquery的安裝:
ubtuntu和windows下安裝lxml:pip3 install pyquery
驗證安裝:安裝完成,在python命令行下輸入import pyquery?沒有報錯,證明庫已經安裝好了。
pyquery的介紹:
PyQuery庫也是一個非常強大又靈活的網頁解析庫,如果你有前端開發經驗的,都應該接觸過jQuery,那么PyQuery就是你非常絕佳的選擇,PyQuery 是 Python 仿照 jQuery 的嚴格實現。語法與 jQuery 幾乎完全相同,所以不用再去費心去記一些奇怪的方法。
pyquery的官網:
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變量是一個字符串類型,作為參數用來初始化
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選擇器進行查找
規則:
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標簽下的span標簽(注意層級關系以空格隔開)
print(doc('#haha .item-0 a span'))
(3)DOM操作(或者叫節點操作)
屬性的增刪操作:
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:
當然,除了操作class這個屬性外,也可以用attr()方法對屬性進行操作。此外,還可以用text()和html()方法來改變節點內容的內容,使用css()方法對css屬性進行操作
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'))
為了方便理解,這是運行截圖:
?
remove:
刪除某個標簽,在爬取過程中我們通常爬去一下標簽或者內容下來的時候總會有些不想要的標簽,這個時候我們可以用下面的類似方法刪除這個標簽
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標簽
data.find('a').remove()
#再次打印
print(data.text())
其實還有很多節點操作方法,比如append(),empty()和prepend()等方法(其實這些方法在爬蟲基本用不到),她們和jquery()方法一致,詳細的用法可以參考文檔http://pyquery.readthedocs.io/en/latest/api.html
?
其實還有很多,不過基本都用不到,在爬蟲的時候。哈哈哈,其實,我也就知道這么多
?
?
?
?
?
?
?
?
?
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

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