Python之PyQuery
Python爬虫解析库的使用之PyQuery
本文主要介绍解析库 PyQuery 的使用。
PyQuery
pyquery: a jquery-like library for python
PyQuery 的使用方法和jQuery基本相同。
⚠️【注意】需要安装好 PyQuery。
初始化
PyQuery 初始化时可以传入多种形式的数据源,如内容是 HTML 的字符串、源的URL、本地的文件名等。
字符串初始化
1 | from pyquery import PyQuery as pq |
URL初始化
1 | from pyquery import PyQuery as pq |
CSS选择器
详见 CSS 选择器表。
查找节点
- 查找子节点用
children('css-selector')
方法,参数为空则为全部。 - 查找子孙节点用
find('css-selector')
方法,参数不可为空! - 查找父节点用
parent('css-selector')
方法,参数为空则为全部。 - 查找祖先节点用
parents('css-selector')
方法,参数为空则为全部。 - 查找兄弟节点用
siblings('css-selector')
方法,参数为空则为全部。
1 | 'div') p = doc( |
遍历
用 PyQuery 选择到的结果可以遍历:
1 | for i in p.parent(): |
注意是lxml的Element了,要用lxml的方法处理。
获取信息
attr()
获取属性
1 | a = doc('a') |
attr() 必须传入要选择的属性名。
若对象包含多个节点,调用对象的attr(),只会返回第一个对象的对应结果。要返回每一个的需要遍历。
text()
获取文本
1 | a = doc('a') |
这个会输出所有包含节点的文本join的结果。
节点操作
PyQuery 还可以操作节点,这个不是重点。