返回顶部
关闭软件导航
位置:首页 > 资讯 > 电商资讯>京东商品评论太多带你一键爬取京东商品评论
京东商品评论太多带你一键爬取京东商品评论

京东商品评论太多(带你一键爬取京东商品评论)

一、项目说明

京东商品评论太多带你一键爬取京东商品评论1

1.项目背景

一天,一朋友扔给我一个链接s://item.jd.com/.html,让我看看这个歌商品的所有评论怎么抓取,我打开一看,好家伙,竟然有近300万条评论,不是一个小数目啊。

京东某商品评论

但是仔细一看,原来有234万+的评论是默认好评,还是有少部分是有价值的评价的。

经过进一步观察,可以看到

商品评论翻页

显然,网页中显示的只有100页数据,每页显示10条,通常可以用selenium点击每一页然后获取,但是这样效率是不是太低了呢?还是直接用requests来得更直接,很多情况下网页显示的数据是请求得到的JSON数据在网页上渲染而显示出来的,京东的评论会不会也是这样呢?好,说干就干!!!

2.项目环境

这个小项目使用Python爬取,不需要太多的配置,只需要安装requests库就足够,我相信对于很多玩爬虫的小伙伴来说这个库肯定是必备的,没装requests不要告诉我你会爬虫。

二、项目实施

1.项目分析

上面说到,网页中的数据很多都是通过渲染请求到的JSON数据得到的,那么我们就来看看京东是不是也是这样的。利用浏览器的审计工具,选择Network栏,可以看到

商品评论总体概况

仔细查看,寻找链接中于评论(comment)有关的链接,可以找到其中的一个请求链接s://club.jd.com/comment/productCommentSummaries.action?referenceIds=&callback=jQuery1951081&_=,如上图。这是关于该商品评论的整体情况的,可以看到具体的总评论数、默认好评数、好评数、好评率等,虽然不是我们想要的,但是也近了一步,继续寻找,又找到了一条带comment字眼的链接s://club.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98&productId=&score=0&sortType=5&page=0&pageSize=10&isShadowSku=0&fold=1,如图

评论详情概览

后边有10条评论,应该就是该商品对应的第一页评论了,点开查看,如下:

评论数据详情

对比网页中显示的评论可以看到,这就就是我们要找的东西。

由于得到的数据不是标准格式的JSON,所以我选择使用正则表达式来获取相关的内容。

现在还有一个问题,我们只获得了1页评论,那怎么获取所有的评论呢?会不会秘密隐藏在链接中呢?

对于链接s://club.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98&productId=&score=0&sortType=5&page=0&pageSize=10&isShadowSku=0&fold=1,显然有很多参数,不难找到,有参数productId和page,假如猜得不错,应该是商品id和评论页数(从0开始),这时,换一个商品id,那么商品id怎么获得呢?举个例子,在链接s://item.jd.com/.html中,商品id就是。另找一个商品,将其商品id替换掉评论链接中的productId,获得的正是该商品的第一页评论。现在尝试翻页,逐渐增大page参数的值,如1、2、3…,也能获取到对应页的评论数据。

现在分析工作已经做的差不多了,可以开始码代码了。

2.代码实现

导入模块和定义常量

import?reimport?timeimport?csvimport?osimport?requestsimport?html#?设置请求头headers?=?{'cookie':?'shshshfp=22ddd21be92463ffa35684d;?shshshfpa=ab283f84-c40f-9710-db89-84a8d3366a81-;?__jda=.....1;?__jdv=|direct|-|none|-|;?__jdc=;?shshshfpb=bUe7tI9%2FOOaJKd7vP0EtSOg%3D%3D;?__jdu=;?areaId=22;?ipLoc-djd=22-1977-1980-0;?3AB9D23F7A4B3C9B=7XEQD4BFTGEH44EK7LN7HLFCHJW6W2NS5VJOQOCHABZVI7LXJJIW3K2IX5MTPZ4TBERBLY6TRQR5CA3S3IYVLQ2JGI;?jwotest_product=99;?shshshsID=a7457cee6a4a9fa285fe2cff44c6bd17_4_;?__jdb=.4.|1.;?JSESSIONID=8C21549A613B83F0CB86EF1F38FD63D3.s1','sec-fetch-dest':?'document','sec-fetch-mode':?'navigate','sec-fetch-site':?'none','sec-fetch-user':?'?1','upgrade-insecure-requests':?'1','User-Agent':?'Mozilla/5.0?(Windows?NT?10.0;?Win64;?x64)?AppleWebKit/537.36?(KHTML,?like?Gecko)?Chrome/80.0.3987.162?Safari/537.36'}

导入需要使用到的模块,并且定义请求头用于请求,减少被反爬的概率。

如果您觉得 京东商品评论太多带你一键爬取京东商品评论 这篇文章对您有用,请分享给您的好友,谢谢
文章地址:https://www.tianxianmao.com/article/online/10765.html
解放双手无尽可能,有问题添加天线猫微信