python爬虫(7)——获取京东商品评论信息
来源:互联网 发布:阿里巴巴农村淘宝面试 编辑:程序博客网 时间:2024/05/17 07:13
本文借鉴了之前爬取天猫商品评论的思想,先通过分析网页信息来定位京东加载商品评论信息的JS页面,然后从中提取出想要的商品评论信息并存入MySQL数据库。
1.分析网页信息
本文在进行各项操作时同样以小米6为例,首先打开京东上小米6销量最高的某店铺,在火狐浏览器下按F12查看网页详细信息。在网络模式下定位加载商品评论信息的JS页面,找到文件名带ProductPageComment关键词,域名为club.jd.com的脚本页面,选中该页面,在右侧点击预览,如下图所示:
由上图可以判断该页面即为加载商品评论信息的JS页面。然后,我们在右侧点击消息头,可以看到该JS页面的请求网站,如下图所示:
复制该请求网址(https://club.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98vv56668&productId=4099139&score=0&sortType=5&page=0&pageSize=10&isShadowSku=0&fold=1),并在浏览器中打开,如下图所示:
我们接下来的任务就是从该网址中提取出我们想要的信息。通过分析该页面数据信息可以发现,该页面数据信息的结构是:fetchJSON_comment98vv337(JSON格式数据),我们在通过JSON方式提取页面信息时,需要先过滤掉无关信息,如jsondata = html[27:-2]这样的方式。过滤之后可以得到纯JSON格式数据,通过和原网页数据进行对比分析可以发现,该JSON数据中的“referenceName”属性对应的是商品全名(商品名+关键参数信息),“creationTime”属性对应的是用户评论时间,“content”属性对应的是用户评论内容。下面就将根据以上分析得到的结果编写Python代码提取商品评论数据,并存入MySQL数据库中。
2.代码实现
实现代码如下所示:
# -*- coding: utf-8 -*-"""Created on Wed Jul 12 15:29:04 2017@author: Administrator"""import urllib.requestimport jsonimport timeimport randomimport pymysql.cursorsdef crawlProductComment(url,page): #读取原始数据(注意选择gbk编码方式) html = urllib.request.urlopen(url).read().decode('gbk') #从原始数据中提取出JSON格式数据(分别以'{'和'}'作为开始和结束标志) jsondata = html[27:-2] #print(jsondata) data = json.loads(jsondata) #print(data['comments']) #print(data['comments'][0]['content']) #遍历商品评论列表 for i in data['comments']: productName = i['referenceName'] commentTime = i['creationTime'] content = i['content'] #输出商品评论关键信息 print("商品全名:{}".format(productName)) print("用户评论时间:{}".format(commentTime)) print("用户评论内容:{}".format(content)) print("-----------------------------") ''' 数据库操作 ''' #获取数据库链接 connection = pymysql.connect(host = 'localhost', user = 'root', password = '123456', db = 'jd', charset = 'utf8mb4') try: #获取会话指针 with connection.cursor() as cursor: #创建sql语句 sql = "insert into `jd-mi6` (`productName`,`commentTime`,`content`) values (%s,%s,%s)" #执行sql语句 cursor.execute(sql,(productName,commentTime,content)) #提交数据库 connection.commit() finally: connection.close()for i in range(0,10): print("正在获取第{}页评论数据!".format(i+1)) #小米6评论链接,通过更改page参数的值来循环读取多页评论信息 url = 'https://club.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98vv56668&productId=4099139&score=0&sortType=5&page=' + str(i) +'&pageSize=10&isShadowSku=0&fold=1' crawlProductComment(url,i) #设置休眠时间 time.sleep(random.randint(31,33))
执行结果如下图所示:
MySQL数据库中的数据存储如下图所示:
- python爬虫(7)——获取京东商品评论信息
- python爬虫(6)——获取天猫商品评论信息
- pyhton爬虫(10)——通过亚马逊商品评论时间分析商品销量分布情况
- 爬虫学习笔记_京东商品内容、评论
- 手把手教你写电商爬虫-第五课 京东商品评论爬虫 一起来对付反爬虫
- Python 网络爬虫与信息获取(一)—— requests 库的网络爬虫
- [爬虫]使用python抓取京东全站数据(商品,店铺,分类,评论)
- Booking网站爬虫,获取酒店评论内容(Python)
- [Python爬虫] Selenium+Phantomjs动态获取CSDN下载资源信息和评论
- python爬虫——获取新浪新闻前两页新闻信息
- python 爬虫获取网站信息(一)
- python 爬虫获取网站信息(二)
- Python网络爬虫与信息提取-Day13-(实例)淘宝商品比价定向爬虫
- Python 网络爬虫与信息获取(二)—— 页面内容提取
- pyhton爬虫(11)——抓取亚马逊商品类别信息
- 使用java的爬虫策略获取京东评论
- pyhton微博爬虫(3)——获取微博评论数据
- python json 爬京东商品评论
- POJ 3175 Finding Bovine Roots 笔记
- 用Python将json数据装载到mysql
- 二、Starting and Stopping Systems in SAP HANA Studio
- HDU2528-Area(计算凸多边形面积,线段和直线交点)
- 链表面试题
- python爬虫(7)——获取京东商品评论信息
- Codeforces Round #423 (Div. 2) C. String Reconstruction思维 D. High Load 构造
- Spring部分注解记录
- Ubuntu titanx CUDA8.0+cudnn5.1+Caffe 安装与遇到的报错
- Oracle卸载
- Linux系统安装
- 蓝桥杯 ALGO-113 算法训练 数的统计
- shell学习整理笔记
- 关于Java初初学者的各种基本数据类型的定义。