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

一、项目说明

1.项目背景

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

京东某商品评论

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

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

商品评论翻页

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

2.项目环境

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

二、项目实施

1.项目分析

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

商品评论总体概况

仔细查看,寻找链接中于评论(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,如图

评论详情概览

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

评论数据详情

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

由于得到的数据不是标准格式的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…,也能获取到对应页的评论数据。

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

2.代码实现

导入模块和定义常量

import reimport timeimport csvimport osimport requestsimport html# 设置请求头headers = {    'cookie': 'shshshfp=22dd633052035d21be92463ffa35684d; shshshfpa=ab283f84-c40f-9710-db89-84a8d3366a81-1586333030; __jda=122270672.1586333031101106032014.1586333031.1586333031.1586333031.1; __jdv=122270672|direct|-|none|-|1586333031103; __jdc=122270672; shshshfpb=bUe7tI9%2FOOaJKd7vP0EtSOg%3D%3D; __jdu=1586333031101106032014; areaId=22; ipLoc-djd=22-1977-1980-0; 3AB9D23F7A4B3C9B=7XEQD4BFTGEH44EK7LN7HLFCHJW6W2NS5VJOQOCHABZVI7LXJJIW3K2IX5MTPZ4TBERBLY6TRQR5CA3S3IYVLQ2JGI; jwotest_product=99; shshshsID=a7457cee6a4a9fa285fe2cff44c6bd17_4_1586333142454; __jdb=122270672.4.1586333031101106032014|1.1586333031; 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'}

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

商品评论html,京东商品评论太多(带你一键爬取京东商品评论)相关推荐

  1. python爬取京东商品数据要先登录_手把手教你用python 爬取京东评论

    本次python实战,主要目标是利用 Python爬取京东商品评论数,如上图所示:爬取"Python之父"推荐的小蓝书,这些信息主要包括用户名.书名.评论等信息. 爬取的网址url ...

  2. python爬取京东书籍_一个scrapy框架的爬虫(爬取京东图书)

    我们的这个爬虫设计来爬取京东图书(jd.com). scrapy框架相信大家比较了解了.里面有很多复杂的机制,超出本文的范围. 1.爬虫spider tips: 1.xpath的语法比较坑,但是你可以 ...

  3. python爬京东联盟_python爬虫框架scrapy实战之爬取京东商城进阶篇

    前言 之前的一篇文章已经讲过怎样获取链接,怎样获得参数了,详情请看python爬取京东商城普通篇,本文将详细介绍利用python爬虫框架scrapy如何爬取京东商城,下面话不多说了,来看看详细的介绍吧 ...

  4. Python 不用selenium 带你高效爬取京东商品评论

    文章目录 一.项目说明 1.项目背景 2.项目环境 二.项目实施 1.项目分析 2.代码实现 导入模块和定义常量 爬取评论主体函数 主函数 三.项目分析和说明 1.运行测试 2.改进分析 3.其他说明 ...

  5. python selenium爬虫爬京东评论_Python 不用selenium 带你高效爬取京东商品评论

    代码实现 导入模块和定义常量 import re import time import csv import os import requests import html # 设置请求头 header ...

  6. 爬取京东本周热卖商品所有用户评价存入MySQL

    爬取京东本周热卖商品所有用户评价存入MySQL       说明 本项目是对(爬取京东本周热卖商品基本信息存入MySQL)项目的追加,所以会有一些内容上的衔接,例如工具的使用方法等在此篇就不赘述,大家 ...

  7. python爬取京东商品图片_python利用urllib实现爬取京东网站商品图片的爬虫实例

    本例程使用urlib实现的,基于python2.7版本,采用beautifulsoup进行网页分析,没有第三方库的应该安装上之后才能运行,我用的IDE是pycharm,闲话少说,直接上代码! # -* ...

  8. python爬淘宝app数据_一篇文章教会你用Python爬取淘宝评论数据(写在记事本)

    [一.项目简介] 本文主要目标是采集淘宝的评价,找出客户所需要的功能.统计客户评价上面夸哪个功能多,比如防水,容量大,好看等等. [二.项目准备工作] 准备Pycharm,下载安装等,可以参考这篇文章 ...

  9. 使用scrapy爬取京东的手机数据

     使用scrapy爬取京东的数据 本文目的是使用scrapy爬取京东上所有的手机数据,并将数据保存到MongoDB中 一.项目介绍 主要目标 使用scrapy爬取京东上所有的手机数据 将爬取的数据存储 ...

最新文章

  1. KDD 2019高维稀疏数据上的深度学习Workshop论文汇总
  2. 栈和托管堆/值类型和引用类型/强制类型转换/装箱和拆箱[C#]
  3. 【Linux 内核】线程调度示例一 ③ ( 获取线程优先级 | 设置线程调度策略 | 代码示例 )
  4. spawn-fcgi启动的一些报错问题
  5. python 语言教程(4)列表常用方法
  6. Spring Boot 入门 IDEA 版本 2小时学会springBoot 代码上传至gitee 或者github 事务没做出来
  7. Mybatis中Mapper动态代理方式
  8. 11个有关HTML5的事实
  9. 2020运动相机推荐_2020年最好的全景运动相机推荐
  10. mtk2502和nrf52832哪个好_蓝牙芯片NRF51822与NRF52832的性能对比
  11. kotlin 添加第一个 集合_kotlin 集合的操作
  12. 基于springboot的多人聊天系统
  13. Python 基础起步 (三) 基础的数据类型,简单运算
  14. Pytorch模型量化介绍
  15. 广告牌定时器怎么设置时间_定时器怎么调时间
  16. 热酷网邱金柱:技术牛人是核心竞争力
  17. 今天开机发现,在光标左边多了一个长方形的带有箭头的,怎么去掉?
  18. java里如何表示黑桃方片_扑克红桃,方片,黑桃,梅花他们的顺序如何,代表什么意义呀?jac 爱问知识人...
  19. OracleLinux-R6-U5-Server-x86_64安装,及oracle11g安装
  20. 零碎的知识点及常用特效

热门文章

  1. 计算机系统信号教学,计算机科学与通信工程学院成功举办《信号与线性系统》线上教学公开课...
  2. 民生银行牛新庄: 业务数据化数据业务化,以数据驱动业务发展
  3. win7制作ntp服务器,使用win7做为NTP服务器
  4. 读《Optimally Tuned Iterative Reconstruction Algorithms for Compressive Sensing》有感……
  5. 用户精准运营必备2大用户模型:ASG ; RFM
  6. 物联网技术已经渗透各个行业
  7. 数智化升级必答题,尚美数智如何成为酒店行业标准答案?
  8. 计算机学生如何创新,如何在计算机教学中培养学生的创新能力
  9. Ubuntu下类似 Mac下的 Quicksilver, Alfred 的快捷键工具
  10. 【附源码】计算机毕业设计JAVA景区门票系统