查看原文
其他

听说你到现在还不会爬取携程评论?

李运辰 Python研究者 2022-07-01

大家好,我是辰哥。


这几天在辰哥的技术交流群里有读者反应说不会爬取携程的评论数据,今天辰哥给读者安排上。作为辰哥的文章读者,辰哥必须教会大家如何爬取携程评论数据(哈哈哈)。


下面就以长隆野生动物世界为例,讲解如何去爬取携程评论数据


涉及核心知识点:

  1. Ajax异步请求分析

  2. 发送post请求


01分析数据源



这里的数据源是指html网页?还是Aajx异步。对于爬虫初学者来说,可能不知道怎么判断,这里辰哥也手把手过一遍。


提示以下操作均不需要登录(当然登录也可以)


咱们先在浏览器里面搜索携程,然后在携程里面任意搜索一个景点:长隆野生动物世界,这里就以长隆野生动物世界为例,讲解如何去爬取携程评论数据。



页面下方则是评论数据




1.分析数据源




从上面两张图可以看出,点击评论下一页,浏览器的链接没有变化,说明数据是Ajax异步请求。因此我们就找到了数据是异步加载过来的,这时候需要去network里面是查看数据包


02分析数据包


在network中找到下面这个数据包



查看Preview里面的内容(请求返回内容)



可以看到数据已经请求到了,下面看一下数据是否是正确的(和网页内容一致)。



ok,没问题之后,下面开始编写Python程序去请求数据。


1.请求地址



可以获取到请求链接和请求方式。


这里请求不用添加请求头header也是可以的。其中postUrl是请求链接,data_1是请求参数。


2.请求参数


在network里可以看到请求参数



在程序中的构建如下:

其中需要关注的是arg中的pageIndex(页数),pageSize(每页条数)。


最终结果如下:



该景点的评论就可以成功爬取下来了。


03采集全部评论


上面只是采集了第一页的评论数据,通过改变arg中的pageIndex(页数),就可以遍历爬取全部的评论。



比如这个景点一共是300页。现在把循环给加上


最终的完整代码如下:


04小结


本文涉及核心知识点:

  1. Ajax异步请求分析

  2. 发送post请求


最后说一声:原创不易,求给个赞、在看、评论


推荐阅读

实际上采集全网视频也没那么难

实战|惊呆了,Python竟然能剪辑视频!

实战|教你用Python玩转Redis

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存