PyQuery是基于jQuery语法的Python库,用于解析HTML和XML文档,而不用使用复杂的正则表达式或者DOM操作。使用PyQuery可以方便地从Web页面中提取出所需的信息。下面是使用PyQuery的完整攻略。
安装PyQuery
使用pip命令进行安装:
pip install pyquery
导入库
使用import语句导入pyquery库:
from pyquery import PyQuery as pq
创建PyQuery对象
使用pq()函数创建PyQuery对象,参数可以是字符串、URL或者文件名。下面是创建PyQuery对象的三种方式:
# 从字符串创建PyQuery对象
html = '''
<div>
<ul>
<li class="item-0">item1</li>
<li class="item-1"><a href="link1.html">item2</a></li>
<li class="item-0"><a href="link2.html">item3</a></li>
<li class="item-1"><a href="link3.html">item4</a></li>
<li class="item-0"><a href="link4.html">item5</a></li>
</ul>
</div>
'''
doc = pq(html)
# 从URL创建PyQuery对象
doc = pq(url='http://www.baidu.com')
# 从文件创建PyQuery对象
doc = pq(filename='test.html')
解析HTML文档
使用find()、children()等函数来查找HTML标签,使用text()、html()等函数来获取标签的内容。下面是一个解析HTML文档的示例:
html = '''
<div>
<ul>
<li class="item-0">item1</li>
<li class="item-1"><a href="link1.html">item2</a></li>
<li class="item-0"><a href="link2.html">item3</a></li>
<li class="item-1"><a href="link3.html">item4</a></li>
<li class="item-0"><a href="link4.html">item5</a></li>
</ul>
</div>
'''
doc = pq(html)
lis = doc('li')
for li in lis.items():
print(li.attr('class'), li.find('a').text())
输出结果为:
item-0 item1
item-1 item2
item-0 item3
item-1 item4
item-0 item5
解析XML文档
PyQuery同样适用于解析XML文档,下面是一个解析XML文档的示例:
xml = '''
<bookstore>
<book category="cooking">
<title lang="en">Title1</title>
<author>Author1</author>
<year>2005</year>
<price>100</price>
</book>
<book category="children">
<title lang="en">Title2</title>
<author>Author2</author>
<year>2006</year>
<price>50</price>
</book>
</bookstore>
'''
doc = pq(xml)
books = doc('book')
for book in books.items():
print(book.find('title').text(), book.find('price').text())
输出结果为:
Title1 100
Title2 50
这是PyQuery使用的简单示例,PyQuery还有更多强大的功能,如CSS选择器、伪类选择器等,可供进一步学习应用。