前言
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'))
新闻热点
疑难解答