什么是PyQuery
PyQuery是一个类似于jQuery的解析网页工具,使用lxml操作xml和html文档,它的语法和jQuery很像。和XPATH,Beautiful Soup比起来,PyQuery更加灵活,提供增加节点的class信息,移除某个节点,提取文本信息等功能。
初始化PyQuery对象
html文档的所有操作都需要PyQuery对象来完成,初始化PyQuery对象主要有三种方式,分别是通过网址、字符串和文件名创建。
方式一:通过网址初始化PyQyery对象
先看一段代码:
from pyquery import PyQuery as pq  s = '<html><title>PyQuery用法总结<title></html>' doc = pq(s) print(doc('title'))运行结果:
<title>PyQuery用法总结</title>首先要import PyQuery类,然后将字符串传递给PyQuery类,这样就生成了一个PyQuery对象,通过该对象就可以访问字符串中的title节点。
PyQuery还会将残缺的html文档补全。看下面的代码:
from pyquery import PyQuery as pq  s = '<html><title>PyQuery用法总结</title>' doc = pq(s) print(doc('html'))运行的结果:
<html><head><title>PyQuery用法总结</title></head></html>可以我们的字符串的html节点是没有闭合的,并且缺少head节点。初始化PyQuery对象之后,会把html文档补全,并且自动加上head节点。
方式二:URL网址初始化PyQyery对象
将要解析的URL网址当做参数传递给PyQuery类:
from pyquery import PyQuery as pq  url = 'http://www.bigdata17.com' doc = pq(url=url,encoding='utf-8') print(doc('title'))运行结果:
<title>Home - Summer哥的自留地</title>方式三:通过文件初始化PyQyery对象
这个方式也比较常用,很多时候我们会将网站爬取下来然后保存在本地磁盘:
from pyquery import PyQuery as pq  doc = pq(filename='test_pyquery.html',encoding='utf-8') print(doc('title'))访问节点属性:
使用attr()方法访问节点的属性:
from pyquery import PyQuery as pq li = pq('<li id="test1" class="test1"></li><li id="test2" class="test2"></li>')('li') print(li.attr("id"))运行结果:
test1上面的代码中有两个id不同的li节点,但是attr()方法只取第一个li节点的id属性值,而不取第二个,我们把上面的代码修改下,把第一个li节点的id属性去掉,attr方法是否只取第一个复合条件节点的属性值:
                        
                        
                    