- 实战Python网络爬虫
- 黄永祥
- 396字
- 2021-03-23 20:15:55
8.3 数据清洗
Requests-HTML不仅优化了请求过程,还提供了数据清洗的功能,而Requests模块只提供请求方法,并不提供数据清洗,这也体现了Requests-HTML的一大优点。使用Requests开发的爬虫,数据清洗需要调用其他模块实现,而Requests-HTML则将两者结合在一起。
Requests-HTML提供了各种各样的数据清洗方法,比如网页里的URL地址、HTML源码内容、文本信息等,使用方法如下所示:
![](https://epubservercos.yuewen.com/78BE40/15056704604178806/epubprivate/OEBPS/Images/Figure-P71_3.jpg?sign=1739626601-eS3KeldKPgZCQULFkZEosQ3Eo84ngfVo-0-dbaec87eb02b64f2a7ec360af173d0a9)
上述代码只是提取了网站的基本信息,如果想要精准地提取某个数据,可以使用find()、xpath()、search()和search_all()方法实现。首先了解这4种方法的定义及相关的参数说明:
![](https://epubservercos.yuewen.com/78BE40/15056704604178806/epubprivate/OEBPS/Images/Figure-P72_2.jpg?sign=1739626601-JU4HTfcRYCQdCRIFSIK6yk0k1Dl3pkq6-0-2ff05f0670a93a125adb0d68f8dc1457)
以豆瓣电影的网页为例,在浏览器中打开豆瓣电影的网页并使用开发者工具分析网页信息,分别提取电影名与评分,网页元素信息如图8-2所示。
![](https://epubservercos.yuewen.com/78BE40/15056704604178806/epubprivate/OEBPS/Images/Figure-P73_1.jpg?sign=1739626601-C8hOfIuxmTySalGk800KUZdG30peTwpB-0-480f80781bf0fe0890569b2b6ac7df42)
图8-2 数据精准提取
从图8-2中发现,电影名在标签〈li class="title"〉里,评分在标签〈li class="rating"〉里,因此上述4种定位方法的使用如下所示:
![](https://epubservercos.yuewen.com/78BE40/15056704604178806/epubprivate/OEBPS/Images/Figure-P73_2.jpg?sign=1739626601-zEuUUZ6OHJR2VlC4X4rsMO3fwCMKe5bF-0-7be15c14bb8b46a932d51e8bfdf36488)
如果使用XPath Selector或CSS Selector实现元素定位,需要掌握XPath或CssSelector语法。这两者的语法本书不做详细介绍,有兴趣的读者可自行查阅相关资料。