前言
电商平台的小爬虫,通过网站的搜索接口拿到商品ID,根据商品ID采集对应的评论。
1、目标网站:
aHR0cHM6Ly9zZWFyY2guamQuY29tL1NlYXJjaD9rZXl3b3JkPSVFOSVBMyU5RiVFNSU5MyU4MQ==
搜索的关键词可自行更改,文章这里以食品为例。
2、主要用到的技能如下:
- xpath页面解析,提取字段信息
- url编码,设置referer反爬
- 对比多个请求,查看翻页参数的变化
PS:如有需要Python学习资料的小伙伴可以加下方的群去找免费管理员领取
可以免费领取源码、项目实战视频、PDF文件等
评论接口
一、接口查找
随意点击某一商品,跳转详情页,点击商品评价
继续下翻,查看评论展示页数,这里只显示100页
要查找真正的评论接口,直接刷新页面,找起来相当麻烦。
打开调试,清空请求内容,直接点击查看第二页的接口信息,如下图
查看response信息,根据字段comments很容易判断这就是要找的评论接口,里面还包含了热门评论信息。
二、参数查找
先截图记录下点击第二页的请求参数,如下图
接着继续点击第三页内容,左侧搜索框中直接搜索productP,过滤无用的接口信息,查看请求参数,并和前一页的请求参数做比较。
分析到这里可以得到如下结论
- productId代表当前商品的ID,更换商品ID,便可以采集不同商品的评论
- page代表访问的页数,这里计算页数从0开始,参数请求的页数等于实际点击的页数减1
三、代码测试
代码如下,请求时需要在headers中加入ua和referer,这里翻页只设置2
执行结果如下:
代码里只提取了商品ID,评论内容,评论时间,如下图红框标注的数据
如果要提取其他字段信息,可在代码中自行添加。
搜索接口
一、接口查找
搜索以食品为例,输入食品,点击搜索
继续下翻,查看商品返回页数,这里也是最大返回100页信息
打开调试,清空请求内容,根据上面写的查找评论接口的方法,直接点击第二页,观察新增请求。
这里点击红框中s_new接口时,发现响应的信息是html,响应的内容,正好是页面展示的我们需要的商品信息。
二、参数查找
同样的,根据下滑,翻页查看参数的变化
点击页面第二页参数如下
页面上商品展示信息较多,有可能出现会临时加载一次请求的可能,继续下翻,恰好可以看到新增了一次请求,请求参数如下,看着参数增多了。(注意:新增的参数可以忽略)
接着点击第三页
如果无法发现规律,可继续点击翻页查看变化规则。
接口参数的构造逻辑有以下几点:
- 每一页有两次请求,page初始值为1
- s的值每次请求增加25,初始值为1
- 其他参数值不变,部分新增参数可以忽略
三、html页面解析
直接定位到页面商品位置,可以看到所有商品信息都在ul标签下的li标签里面
点击li标签,可以看到div/div下的a标签里面,包含商品title信息,商品链接信息,链接当中又包含我们需要提取的product_id信息,右键copy、copy xpath直接提取位置信息。
四、代码测试
代码如下,注意headers中,referer参数需要进行url编码。
执行结果如下:
这里只提取了title、product_id两个字段,需要可新增。
本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。
作者:習慣有妳