玉龙的老年机荣耀3X终于坚持不住,最近频繁出现卡顿、死机、内存不足等情况,到了不得不换手机的时候了。结合一系列的对比分析,最终选择了红米K20PRO,这个传说中19年最香机。此处是我在京东爬取的1000条评论进行分析。
1.爬区京东数据
1.1打开京东官网输入红米K20pro,点击进入第个商家,右击检查,抓包发现字体进行了加密。1.2不管他,直接点击左上角的小手机图标,换到手机模式,刷新后再进行抓包。
1.3这次,字体到是正常了,但是没有我们想要的评论数据。直接进行搜索,点击最右边的三个点。如下图
1.4我们就搜索第一条评论的时间,发现有两条搜索记录,我们先打开第一条。
1.5发现是我们要的内容,我们把它的url地址复制下来。
1.6然后多打开不同商品、同一商品的不同评论页码我们发现它productId来改变商品,page字段改变评论的页码。
2爬虫代码
import requests
import time,json,random
class JDredmik20pro:
def __init__(self):
self.headers = {'Referer': 'https://item.m.jd.com/product/100005979698.html',
'Sec-Fetch-Mode': 'no-cors',
'User-Agent': 'Mozilla/5.0 (Linux; Android 5.0; SM-G900P Build/LRX21T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Mobile Safari/537.36'}
def prase_url(self,url):
contents = requests.get(url=url, headers=self.headers)
contents = json.loads(contents.text[27:-2])
return contents["comments"]
def prase_contents(self,content):
listInfo = []
for i in content:
info = {}
info['content'] = i['content']
info['creationTime'] = i['creationTime']
info['productColor'] = i['productColor']
info['productSize'] = i['productSize']
listInfo.append(info)
return listInfo
def write_to_csv(self,listInfo):
with open('k20pro.csv','a',encoding='utf-8') as f:
f.write(json.dumps(listInfo))
f.write('\n')
def run(self):
count = 0
for i in range(100,500):
url = 'https://sclub.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98vv10467&productId=7652029&score=0&sortType=5&page={}&pageSize=10&isShadowSku=0&fold=1'.format(i)
content = self.prase_url(url)
listInfo = self.prase_contents(content)
self.write_to_csv(listInfo)
count +=1
print("成功爬取第{}条".format(count))
time.sleep(random.randint(1,3))
if __name__ =='__main__':
jdredmik20pro = JDredmik20pro()
jdredmik20pro.run()
2.1将爬取的内容以json格式进行保存,如下:
2.2转换成xlsx格式显示
3.对数据进行分析
3.1将统计的数据按时间显示发现k20pro的销量波动比较严重,极大值分别出现在五月初、八月中旬、双十一。结合k20pro分别在五月初首售,吸引了一大波关注的米粉购买后销量开始下滑。然后销量在八月初之后开始回升,最究其原因,不难发现雷军在八月初宣布k20pro降价300元,极大地提升了k20pro的性价比。随着双十一快要到来,消费者纷纷开始备战双十一,手机销售量从 九月初开始急剧下滑。理所当然,在做活动优惠力度最大的双十一手机的销售量达到最高。
通过figure_1.png和figure_3.png我们不难发现,k20pro的销量每次在降价提升之后就立马开始下降,这也从侧面说明了19年各大厂商新机发售不断,竞争激烈。各个厂家在同一价位配置各方面很难拉开差距,只能通过降价获得短期优势后,又很快被其他厂商追赶。面对新机不穷的19年,我无法得出k20pro是19年最香机,只能说在某个时期某款手机是最香的。
3.2分析k20pro四种颜色手机的销量,发现大家还是喜欢冰川蓝的最多,碳纤黑次之,然后是火焰红和夏之秘语。k20pro刚发布,大家对其外观的评价褒贬不一,有人觉得炫酷,有觉得太浮夸。结合分析数据来看还是觉得炫酷的占绝大多数。
figure_4.png表明了,更多人比较青睐于大内存和大硬盘的手机,6+64仅占不到10的比例,远小于平均25的占比。说明6+64已经渐渐不能满足人们日常对于手机内存的需求 。也从侧面表名,以手游为代表的大型app越来越多。
3.3从最后这张词云图上可以看出,拍照效果、待机时间、运行速度、屏幕、音效等都是大家对此款手机的热论。尤其是拍照效果、运行速度在消费者得到不错的口碑。
最后附上:图表部分代码
import jieba
import re
import json
import wordcloud
from scipy.misc import imread
with open(r'k20pro.csv', 'r') as f:
lines = f.readlines()
strcontent = ''
for line in lines:
strline = json.loads(line)
for item in strline:
strcontent +=item['content']
listcontent = jieba.lcut(strcontent)
content = ''.join(listcontent)
w = wordcloud.WordCloud(font_path='msyh.ttc',
width = 1000, height = 700, background_color='white',
max_words=80
)
w.generate(content)
w.to_file("ciyun6.png")