前言
pyquery是一個類似jquery的python庫,它實現能夠在xml文檔中進行jQuery查詢,pyquery使用lxml解析器進行快速在xml和html文檔上操作,它提供了和jQuery類似的語法來解析HTML文檔,支持CSS選擇器,使用非常方便
pip方式安裝:
$pip install pyquery#它依賴cssselect和lxml包pyquery==1.4.0 - cssselect [required: >0.7.9, installed: 1.0.3] #CSS選擇器并將它轉換為XPath表達式 - lxml [required: >=2.1, installed: 4.2.2] #處理xml和html解析庫
驗證安裝:
In [1]: import pyqueryIn [2]: pyquery.textOut[2]: <module 'pyquery.text' from '/root/pp1/.venv/lib/python3.6/site-packages/pyquery/text.py'>
pyquery首先需要傳入HTML文本來初始化一個pyquery對象,它的初始化方式有多種,如直接傳入字符串,傳入URL或者傳入文件名
(1)字符串初始化
from pyquery import PyQuery as pqhtml='''<div id="wenzhangziti" class="article 389862"><p>人生是一條沒有盡頭的路,不要留戀逝去的夢,把命運掌握在自己手中,讓我們來掌握自己的命運,別讓別人的干擾與誘惑,別讓功名與利祿,來打翻我們這壇陳釀已久的命運之酒!</p></div>'''doc=pq(html) #初始化并創建pyquery對象print(type(doc))print(doc('p').text())#<class 'pyquery.pyquery.PyQuery'>人生是一條沒有盡頭的路,不要留戀逝去的夢,把命運掌握在自己手中,讓我們來掌握自己的命運,別讓別人的干擾與誘惑,別讓功名與利祿,來打翻我們這壇陳釀已久的命運之酒!
(2)URL初始化
from pyquery import PyQuery as pqdoc=pq(url='https://www.cnblogs.com/zhangxinqi/p/9218395.html')print(type(doc))print(doc('title'))#<class 'pyquery.pyquery.PyQuery'><title>python3解析庫BeautifulSoup4 - Py.qi - 博客園</title>
PyQuery能夠從url加載一個html文檔,之際上是默認情況下調用python的urllib庫去請求響應,如果requests已安裝的話它將使用requests來請求響應,那我們就可以使用request的請求參數來構造請求了,實際請求如下:
from pyquery import PyQuery as pqimport requestsdoc=pq(requests.get(url='https://www.cnblogs.com/zhangxinqi/p/9218395.html').text)print(type(doc))print(doc('title'))#輸出同上一樣<class 'pyquery.pyquery.PyQuery'><title>python3解析庫BeautifulSoup4 - Py.qi - 博客園</title>
(3)通過文件初始化
通過本地的HTML文件來構造PyQuery對象
from pyquery import PyQuery as pqdoc=pq(filename='demo.html',parser='html')#doc=pq(open('demo.html','r',encoding='utf-8').read(),parser='html') #注意:在讀取有中文的HTML文件時,請使用此方法,否則會報解碼錯誤print(type(doc))print(doc('p'))
新聞熱點
疑難解答