Shiux
Shiux
文章50
标签36
分类7

文章分类

一言

文章归档

Python爬虫从入门到放弃(七)PyQuery库的使用

Python爬虫从入门到放弃(七)PyQuery库的使用

PyQuery库也是一个非常强大又灵活的网页解析库,如果你有前端开发经验的,都应该接触过jQuery,那么PyQuery就是你非常绝佳的选择,PyQuery是Python仿照jQuery的严格实现。语法与jQuery几乎完全相同,所以不用再去费心去记一些奇怪的方法了。

官网地址 - https://pyquery.readthedocs.io/en/latest/

jQuery参考文档 - https://jquery.cuishifeng.cn/

初始化

初始化的时候一般有三种传入方式:传入字符串,传入url,传入文件。

字符串初始化

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
from pyquery import PyQuery as pq

html = '''
<div>
<ul>
<li class="item-0">first item</li>
<li class="item-1"><a href="link2.html">second item</a></li>
<li class="item-0 active"><a href="link3.html"><span class="bold">third item</span></a></li>
<li class="item-1 active"><a href="link4.html">fourth item</a></li>
<li class="item-0"><a href="link5.html">fifth item</a></li>
</ul>
</div>
'''
doc = pq(html)
print(doc)
print(type(doc))
print(doc('li'))

输出:

由于PyQuery写起来比较麻烦,所以我们导入的时候都会添加别名:

1
from pyquery import PyQuery as pq

这里我们可以知道上述代码中的doc其实就是一个pyquery对象,我们可以通过doc可以进行元素的选择,其实这里就是一个css选择器,所以css选择器的规则都可以用,直接doc(tag_name)就可以获取所有的该标签的内容,如果想要获取classdoc('.class_name'),如果是iddoc('#id_name')

URL初始化

1
2
3
4
5
from pyquery import PyQuery as pq


doc = pq(url="http://www.baidu.com", encoding='utf-8')
print(doc('head'))

文件初始化

我们在pq()这里可以传入url参数也可以传入文件参数,当然这里的文件通常是一个html文件,例如:pq(filename='index.html')

基本的CSS选择器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
from pyquery import PyQuery as pq


html = '''
<div id="container">
<ul class="list">
<li class="item-0">first item</li>
<li class="item-1"><a href="link2.html">second item</a></li>
<li class="item-0 active"><a href="link3.html"><span class="bold">third item</span></a></li>
<li class="item-1 active"><a href="link4.html">fourth item</a></li>
<li class="item-0"><a href="link5.html">fifth item</a></li>
</ul>
</div>
'''
doc = pq(html)
print(doc('#container .list li'))

这里我们需要注意的一个地方是doc('#container .list li'),这里的三者之间的并不是必须要挨着,只要是层级关系就可以,下面是常用的CSS选择器方法:

本文作者:Shiux
本文链接:https://blog.shiux.com/article/python-spider-7/
版权声明:本文采用 CC BY-NC-SA 3.0 CN 协议进行许可