
上QQ阅读APP看书,第一时间看更新
8.3 数据清洗
Requests-HTML不仅优化了请求过程,还提供了数据清洗的功能,而Requests模块只提供请求方法,并不提供数据清洗,这也体现了Requests-HTML的一大优点。使用Requests开发的爬虫,数据清洗需要调用其他模块实现,而Requests-HTML则将两者结合在一起。
Requests-HTML提供了各种各样的数据清洗方法,比如网页里的URL地址、HTML源码内容、文本信息等,使用方法如下所示:

上述代码只是提取了网站的基本信息,如果想要精准地提取某个数据,可以使用find()、xpath()、search()和search_all()方法实现。首先了解这4种方法的定义及相关的参数说明:

以豆瓣电影的网页为例,在浏览器中打开豆瓣电影的网页并使用开发者工具分析网页信息,分别提取电影名与评分,网页元素信息如图8-2所示。

图8-2 数据精准提取
从图8-2中发现,电影名在标签〈li class="title"〉里,评分在标签〈li class="rating"〉里,因此上述4种定位方法的使用如下所示:

如果使用XPath Selector或CSS Selector实现元素定位,需要掌握XPath或CssSelector语法。这两者的语法本书不做详细介绍,有兴趣的读者可自行查阅相关资料。