crdownload文件用什么打开 crdownload

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

crdownload文件用什么打开 crdownload


京东某商品评论
但是仔细一看,原来有234万+的评论是默认好评,还是有少部分是有价值的评价的 。
经过进一步观察 , 可以看到
crdownload文件用什么打开 crdownload


商品评论翻页
【crdownload文件用什么打开 crdownload】显然,网页中显示的只有100页数据,每页显示10条,通常可以用selenium点击每一页然后获取 , 但是这样效率是不是太低了呢?还是直接用requests来得更直接 , 很多情况下网页显示的数据是请求得到的JSON数据在网页上渲染而显示出来的 , 京东的评论会不会也是这样呢?好 , 说干就干?。。?
2.项目环境这个小项目使用Python爬取 , 不需要太多的配置,只需要安装requests库就足够 ,我相信对于很多玩爬虫的小伙伴来说这个库肯定是必备的,没装requests不要告诉我你会爬虫。
二、项目实施1.项目分析上面说到,网页中的数据很多都是通过渲染请求到的JSON数据得到的,那么我们就来看看京东是不是也是这样的 。利用浏览器的审计工具,选择Network栏,可以看到
crdownload文件用什么打开 crdownload


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


评论详情概览
后边有10条评论,应该就是该商品对应的第一页评论了,点开查看,如下:
crdownload文件用什么打开 crdownload


评论数据详情
对比网页中显示的评论可以看到,这就就是我们要找的东西 。
由于得到的数据不是标准格式的JSON,所以我选择使用正则表达式来获取相关的内容 。
现在还有一个问题,我们只获得了1页评论 , 那怎么获取所有的评论呢?会不会秘密隐藏在链接中呢?
对于链接https://club.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98&productId=100000499657&score=0&sortType=5&page=0&pageSize=10&isShadowSku=0&fold=1 , 显然有很多参数,不难找到,有参数productId和page,如果猜得不错,应该是商品id和评论页数(从0开始),这时,换一个商品id , 那么商品id怎么获得呢?举个例子 , 在链接https://item.jd.com/100000499657.html中,商品id就是100000499657 。另找一个商品,将其商品id替换掉评论链接中的productId,获得的正是该商品的第一页评论 。现在尝试翻页,逐渐增大page参数的值 , 如1、2、3…,也能获取到对应页的评论数据 。
现在分析工作已经做的差不多了,可以开始码代码了 。

推荐阅读