PyQuery 是一个用于解析和操作 HTML 文档的 Python 库,灵感来自于 jQuery,提供了一种简洁且强大的方式来处理 HTML 文档。它允许开发者使用类似于 jQuery 的 CSS 选择器来查找和操作 HTML 元素,这使得处理网页数据变得直观和高效。
PyQuery 的语法简单且功能强大,特别适合那些熟悉 jQuery 的开发者。它提供了一种直观的方式来操作和查询 HTML,使得处理网页数据的任务更加轻松。
应用场景
- Web 爬虫:PyQuery 非常适合用来解析和提取网页中的数据。
- 数据清理:可以用来清理和格式化 HTML 数据。
- Web 测试:在自动化测试中用于检查 HTML 内容。
基本用法
PyQuery 的基本用法包括加载 HTML 文档、选择元素以及操作 DOM。以下是一些常见的用法示例:
加载 HTML
你可以从字符串、文件或 URL 中加载 HTML 文档。
from pyquery import PyQuery as pq # 从字符串加载 html = '<html><head><title>Page Title</title></head><body><p id="intro">Hello, World!</p></body></html>' doc = pq(html) # 从文件加载 doc = pq(filename='path/to/file.html') # 从 URL 加载 doc = pq(url='http://example.com')
选择元素
使用 CSS 选择器来选择元素。
# 选择标题 title = doc('title').text() print(title) # 选择带有 id 为 intro 的段落 intro = doc('#intro').text() print(intro)
操作 DOM
你可以对选定的元素进行各种操作,例如更改文本、属性等。
# 更改文本 doc('#intro').text('New Text') # 添加类 doc('#intro').addClass('new-class') # 更改属性 doc('#intro').attr('style', 'color: red;') # 获取 HTML html_content = doc.html() print(html_content)
高级功能
遍历元素
你可以遍历选定的元素集。
for element in doc('p'): print(pq(element).text())
查找子元素
使用 .find() 方法查找子元素。
# 查找所有子元素 children = doc('body').find('*')
过滤元素
使用 .filter() 方法来过滤元素。
# 过滤出具有特定类的段落 filtered = doc('p').filter('.intro')