一 點睛
如果你對web有所涉及,如果你比較喜歡用css選擇器,如果你對jquery有所了解,那麼這裡有乙個更適合你的解析庫——pyquery。
二 安裝
(venv) e:\webspider>pip install pyquery
三 初始化
1 點睛
pyquery初始化方式有多種,比如直接傳入字串,傳入url,傳入檔名。
2 字串初始化
2.1 **
html = '''
'''from pyquery import pyquery as pq
doc = pq(html)
print(doc('li'))
2.2 結果
e:\webspider\venv\scripts\python.exe e:/webspider/4_3.py
first item
second item
third item
fourth item
fifth item
2.3 說明
這裡首先引入pyquery這個物件,取別名為pq。然後宣告了乙個長html字串,並將其當作引數傳遞給pyquery類,這樣就成功完成了初始化。然後傳入li節點,這樣就可以選擇所有的li節點。
3 url初始化
3.1 **
html = '''
'''from pyquery import pyquery as pq
# 初始化的引數不僅可以以字串的形式傳遞,還可以傳入網頁的url,此時只需要指定引數為url即可
doc = pq(url='')
print(doc('title'))
3.2 結果
e:\webspider\venv\scripts\python.exe e:/webspider/4_3.py
csdn部落格-專業it技術發表平台
3.3 說明
這樣的話,pyquery物件會首先請求這個url,然後用得到的html內容完成初始化,這其實就相當於用網頁的源**以字串的形式傳遞給pyquery類來初始化。
類似實現:
from pyquery import pyquery as pq
import requests
doc = pq(requests.get('').text)
print(doc('title'))
4 檔案初始化
4.1 點睛
當然,除了傳遞url,還可以傳遞本地的檔名,此時將引數指定為filename即可。
4.2 **
from pyquery import pyquery as pq
doc = pq(filename='demo.html')
print(doc('li'))
4.3 說明
當然,這裡需要有乙個本地html檔案demo.html,其內容是待解析的html字串。這樣它會首先讀取本地的檔案內容,然後用檔案內容以字串的形式傳遞給pyquery類來初始化。
以上3種初始化方式均可,當然最常用的初始化方式還是以字串形式傳遞。
四 css選擇器
1 **
html = '''
'''from pyquery import pyquery as pq
doc = pq(html)
print(doc('#container .list li'))
print(type(doc('#container .list li')))
2 結果
e:\webspider\venv\scripts\python.exe e:/webspider/4_3.py
first item
second item
third item
fourth item
fifth item
3 說明
這裡我們初始化pyquery物件之後,傳入了乙個css選擇器#container .list li,它的意思是先選取id為container的節點,然後再選取其內部的class為list的節點內部的所有li節點。然後,列印輸出。可以看到,我們成功獲取到了符合條件的節點。
最後,將它的型別列印輸出。可以看到,它的型別依然是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...
爬蟲筆記 PyQuery模組(七)
pyquery模組也是乙個解析html的乙個模組,它和beautiful soup用起來差不多,它是jquery實現的,和jquery語法差不多,會用jquery的人用起來就比較方便了。pyquery需要依賴lxml模組,不裝的話,使用會報錯。安裝 pip install lxml pip inst...