首页 > 编程 > Python > 正文

python3解析库pyquery的深入讲解

2020-02-15 22:03:37
字体:
来源:转载
供稿:网友

前言

pyquery是一个类似jquery的python库,它实现能够在xml文档中进行jQuery查询,pyquery使用lxml解析器进行快速在xml和html文档上操作,它提供了和jQuery类似的语法来解析HTML文档,支持CSS选择器,使用非常方便

1、pyquery安装

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'>

2、pyquery对象初始化

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'))            
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表