pyquery模組也是乙個解析html的乙個模組,它和beautiful soup用起來差不多,它是jquery實現的,和jquery語法差不多,會用jquery的人用起來就比較方便了。
pyquery需要依賴lxml模組,不裝的話,使用會報錯。
安裝
pip install lxmlpip install pyquery
解析html的3種方式
from pyquery import pyqueryhtml = """搜尋,
搜尋1 and
搜尋2;
上面的鏈結.
.這是廣告植入.
"""doc = pyquery(url='') #指定url,url裡面的html原始碼
doc2 = pyquery(html) #指定html字串
doc3 = pyquery(filename='index.html') #指定檔案
print(doc)
print(doc2)
print(doc3)
css選擇器
css在bs模組裡面也用過,用法差不多。具體如下
print(doc2('.link')) #通過classprint(doc2('#link1')) #通過id
print(doc2('.content,#link1')) #找到所有class為content和id為link1的
print(doc2('.content #link1')) #在content下面找到id為link1的元素
print(doc2('a'))#找到所有的a標籤
print(doc2('[href]'))#找到所有帶有href屬性的元素
print(doc2('a[target=_blank]'))#找到a標籤下面target為_blank的
常用方法
# eq方法,獲取第幾個元素a_tags = doc2('a')
print(a_tags.eq(0)) # a標籤裡面第乙個
print(a_tags.eq(1)) # a標籤裡面第二個
# items()
# 如果找到多個元素的話,想迴圈取元素的話,就得用.items()方法,items就是為了迴圈用的
a_tag = doc2('a')
for a in a_tag.items():
print(a.text())
# text() 、html()
# text()方法是獲取元素裡面的文字的,html()是獲取元素的html
a = doc2('.content')
print(a.html()) # html格式的
print(a.text()) # 只有裡面的文字
# find方法,查詢元素
print(doc2.find('p').find('a')) # 從所有的p標籤裡面找到a標籤
print(doc2.find('p')) # 找到所有的p標籤
print(doc2.find('.content')) # 找到所有class為content的
# filter方法,用來篩選
print(doc2.find('a').filter('#link1')) # 先找到a標籤,然後從a標籤裡面篩選出來id為link1的
# attr方法,獲取屬性
print(doc2('#link1').attr(('href'))) # 獲取id為link1的href的屬性值
爬蟲pyquery基礎篇
一 點睛 如果你對web有所涉及,如果你比較喜歡用css選擇器,如果你對jquery有所了解,那麼這裡有乙個更適合你的解析庫 pyquery。二 安裝 venv e webspider pip install pyquery三 初始化 1 點睛 pyquery初始化方式有多種,比如直接傳入字串,傳入...
爬蟲pyquery中級篇
一 遍歷 1 點睛 pyquery的選擇結果可能是多個節點,也可能是單個節點,型別都是pyquery型別,並沒有返回像beautiful soup那樣的列表。2 單節點 2.1 html from pyquery import pyquery as pq doc pq html li doc ite...
爬蟲入門之pyQuery
pyquery庫是 jquery 的 python 實現,能夠以jquery的語法來操作解析 html 文件,易用性和解析速度都很好 安裝 pip3 install pyquery注意 由於 pyquery 依賴於 lxml 要先安裝 lxml 否則會提示失敗。pip3 install lxmlpy...