![大数据采集与爬虫](https://wfqqreader-1252317822.image.myqcloud.com/cover/726/33643726/b_33643726.jpg)
上QQ阅读APP看书,第一时间看更新
2.6 任务实现
本任务将实现使用BeautifulSoup库、lxml库和requests库完成对百度标题的爬取和解析任务。
1)在Python文件中导入requests库和BeautifulSoup库。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/55_07.jpg?sign=1739310056-yzMA8bdoOxSZnMkGWvJp1MOHu4WYlB5M-0-b3179cc2fbc4c7342e7577005d7e052c)
2)使用requests.get()方法获得指定页面数据。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/55_08.jpg?sign=1739310056-tzLidWPQOPwknvlv9N8tqgOddnvjdRzM-0-e89ce16ebeb668b4e1aa186542037e38)
3)由于requests对象的默认编码方式不是utf-8,因此可能导致乱码,所以先设置requests.encoding='utf-8'。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/56_01.jpg?sign=1739310056-c2ku50pGMu5I3qSS7if39fz8nbOYgUKo-0-2c79c5f320e640cae111caf1806cf3fc)
4)在BeautifulSoup中使用lxml作为解析器,解析request.text得到的页面数据。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/56_02.jpg?sign=1739310056-3thv5c09b7v0aUx5oHbALTdcj2msV3Cf-0-45f2c3cacc31cd8b44a306f41bc51b7f)
5)输出指定的页面标签文本。这里介绍两种方式。
① 直接使用需要查找的标签名。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/56_03.jpg?sign=1739310056-j7X5AgcVHeRbvnjDZLQSYnxqWLmocX53-0-f92c557195f3f10f3220c91e7cd80fb3)
② 使用select方法选择需要查找的标签路径。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/56_04.jpg?sign=1739310056-MA0mEu9ofUSfeyjQ9IDSnfsOxVVdlaqh-0-632345fb609999dfab7ef2b6bed8ea9f)
标签路径可以通过浏览器的开发者工具获取。其具体获取方法是:打开指定页面后,按〈F12〉键,打开开发者工具,选择指定的页面元素并右击,在弹出的快捷菜单中选择“Copy”→ “Copy selector”命令,如图2-15所示。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/56_05.jpg?sign=1739310056-OyfD2cRdeUodx9L9UoOR4NDRw2Yj7tLb-0-7009db74b93b7fb1746ee86eb55c91ed)
图2-15 获得页面元素标签路径
6)显示结果如图2-17所示。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/56_06.jpg?sign=1739310056-ZdF2qzIDsu6uzz8YMfvuQFVp8Y8ACjOM-0-74dfe421d640e7deb98955cb4f169de4)
图2-17 标签查询结果显示
这样就使用requests库和BeautifulSoup库成功地抓取了百度页面中标签为<title>的文本内容。本任务的完整代码如下。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/57_01.jpg?sign=1739310056-lJvloMEKOKjJpjIBUXNoHe6eF3cZHIMP-0-60f6beff9b0e16fdc031a6aec0605235)