爬蟲筆記 PyQuery模組(七)

2022-09-17 02:09:12 字數 1850 閱讀 5162

pyquery模組也是乙個解析html的乙個模組,它和beautiful soup用起來差不多,它是jquery實現的,和jquery語法差不多,會用jquery的人用起來就比較方便了。

pyquery需要依賴lxml模組,不裝的話,使用會報錯。

安裝

pip install lxml

pip install pyquery

解析html的3種方式

from pyquery import pyquery

html = """搜尋,

搜尋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')) #通過class

print(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...