一步一步学爬虫(3)网页解析之parsel的使用
3.4 parsel的使用
前文我们了解了 lxml 使用 XPath 和 pyquery 使用 CSS Selector 来提取页面内容的方法,不论是 XPath 还是 CSS Selector,对于绝大多数的内容提取都足够了,大家可以选择适合自己的库来做内容提取。
不过这时候有人可能会问:我能不能二者穿插使用呀?有时候做内容提取的时候觉得 XPath 写起来比较方便,有时候觉得 CSS Selector 写起来比较方便,能不能二者结合起来使用呢?答案是可以的。
这里我们就介绍另一个解析库,叫做 parsel。
注意:如果你用过 Scrapy 框架(后文会介绍)的话,你会发现 parsel 的 API 和 Scrapy 选择器的 API 极其相似,这是因为 Scrapy 的选择器就是基于 parsel 做了二次封装,因此学会了这个库的用法,后文 Scrapy 选择器的用法就融会贯通了。
3.3.1 介绍
parsel 这个库可以对 HTML 和 XML 进行解析,并支持使用 XPath 和 CSS Selector 对内容进行提取和修改,同时它还融合了正则表达式提取的功能。功能灵活而又强大,同时它也是 Python 最流行爬虫框架 Scrapy 的底层支持。
3.3.2 准备工作
在本节开始之前,请确保已经安装好了 parsel 库,如尚未安装,可以使用 pip3 进行安装即可:
pip3 install parsel
更详细的安装说明可以参考:https://setup.scrape.center/parsel。
安装好之后,我们便可以开始本节的学习了。
3.3.3 初始化
首先我们还是用上一节的示例 HTML,声明 html 变量如下:
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"