解析库pyquery
初始化
像 Beautiful Soup 一样,初始化 pyquery 的时候,也需要传入 HTML 文本来初始化一个 PyQuery 对象
字符串初始化
1 | from pyquery import PyQuery #导入PyQuery库 |
结果可以看见他会叫li节点的内容全部输出出来
1 | <li class="item-0"> |
URL 初始化
PyQuery可以直接传入网页的 URL
1 | from pyquery import PyQuery #导入PyQuery库 |
结果
1 | <title>ZSSのW啥都学</title> |
文件初始化
PyQuery可以直接传递本地的文件名
测试下面这个是a.html文件
1 | <div id="top"> |
python调用他
1 | from pyquery import PyQuery #导入PyQuery库 |
结果
1 | <li class="item-0"> |
基本 CSS 选择器
先,用一个实例来感受 pyquery 的 CSS 选择器的用法:
1 | html = ''' |
运行结果如下:
1 | <li class="item-0">first item</li> |
这里我们初始化 PyQuery 对象之后,传入了一个 CSS 选择器#container .list li,它的意思是先选取 id 为 container 的节点,然后再选取其内部的 class 为 list 的节点内部的所有 li 节点。然后,打印输出。可以看到,我们成功获取到了符合条件的节点。
最后,将它的类型打印输出。可以看到,它的类型依然是 PyQuery 类型。
查找节点
子节点
find()的查找范围是节点的所有子孙节点find()方法,传入 CSS 选择器,选取其内部的li节点,最后打印输出,find()方法会将符合条件的所有节点选择出来1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18html =\
"""
<div id="top">
<span class="position" width="350">职位名称</span>
<span>职位类别</span>
<li class="item-0">
<a href="link1.html">爬虫</a>
<li class="item-1 active"><a href="link4.html">fourth item</a></li>
</li>
</div>
"""
from pyquery import PyQuery as pq
doc = pq(html)
print(doc('.item-0'))
print(type(doc('.item-0')))
print(doc.find("li"))
print(type(doc.find("li")))children()而如果我们只想查找子节点
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 ZSSのW啥都学!


