1. 查看京东官网mate10评价记录
一共有4.2+W条评论记录,晒图记录500条,追评200+,中评100+,差评100+
对评论进行翻页操作发现京东只提供了100页的评论记录,中评数据记录提供10页,差评数据记录提供10页。
2. 对评论页面代码进行分析
2.1使用Google Chorme浏览器来获取网页代码,分析代码结构。按F12查看,点击network选项,点击红点,按F5重新请求加载网页。2.2评论数据位于productPageComments.action?开头的script文件中
获取该文件请求地址:https://sclub.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98vv8955&productId=5544068&score=0&sortType=5&page=0&pageSize=10&isShadowSku=0&fold=1。
在浏览器中粘贴改地址可发现的确为评论地址。
分析结果:评论主要数据都以(showOrderComment”:”)开头,以(”afterDays”)结尾【注意:】
2.3爬虫代码如下:
import pandas as pd
import numpy as np
import time
import re,os
import requests
import jieba.analyse
from wordcloud import WordCloud
import matplotlib.pyplot as plt
### 网址部分(分为三部分):
url1 = 'https://sclub.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98vv7364&productId=5544068&score=0&sortType=5&page='
url2 = '&pageSize=10&isShadowSku=0&fold=1'
### 获取网页代码
for i in range(100):
i = str(i)
url = url1+i+url2
print(url)
html = requests.get(url).content
time.sleep(0.2)
with open('C:\XXX\JD_spyder.txt','ab') as f:
f.write(html)
### 将爬取到数据存储到外部,方便下次直接读取
html =open("C:\XXX\JD_spyder.txt",encoding='gb18030').read()
print (html)
### 使用正则匹配匹配评论
pattern1 = re.compile(u'showOrderComment.*?afterDays"')
content = re.findall(pattern1, html)
### 提取评论内容,机型颜色,机型版本,机型
contents = []
color = []
Size = []
saleValue = []
isMobile = []
### 爬取发现 代码中内容有些混乱,Size:中会出现标准版 和 64G ,128G的不同内容
salevalue:中会出现标准版 和 64G ,128G的不同内容
### 爬取结束发现 size 为内存大小 则salevalue对应标准版
### size 为标准版版本 则salevalue为内存大小
for i in range(len(content)):
contents.append(content[i].split('content":"')[1].split('","creationTime')[0])
color.append(content[i].split('"productColor":"')[1].split('","productSize"')[0])
Size.append(content[i].split('"productSize":"')[1].split('"')[0])
saleValue.append(content[i].split('saleValue":"')[1].split('"')[0])
###
data = pd.DataFrame(np.zeros((4685,5)))
data.columns = ["content","productColor","productSize","saleValue","isMobile"]
data["content"] = contents
data['productColor'] = color
data['productSize'] = Size
data['saleValue'] = saleValue
data['userClientshow'] = userClientshow
### 转化版本号和内存容量
for i in range(len(data)):
if 'GB' in data.iloc[i,2]:
size = data.iloc[i,3]
value = data.iloc[i,2]
data.iloc[i,2] = size
data.iloc[i,3] = value
3.可视化部分
### 3.1对mate10各个颜色销量做可视化
可以看出在四中颜色当中,亮黑色销量要远高于其他颜色的销量,符合mate10商务机的定位。### 3.2可以看出各个版本mate10的销量差距不大。
对评论进行分析