不知道换什么手机?看看买过的怎么说,JD热门手机评论爬取与可视化

20年初,受疫情影响,各家厂商的手机发布会在4月份如雨后春笋,接踵而至.

买那个手机呢?俗话说群众的眼睛是雪亮的,看看买过的人怎么说.本文主要爬取热门的华为40Pro 与小米10的评论进行分析

首先分析网页结构:

发现有个包含Comment 的请求,看看响应

发现评论就在这里面.每一页是10条

然后看看请求头

URL:

请求方式为GET.

请求参数在最下面:

分析发现,productId 对应不同的商品,score对应不同的评价类型,有全部评论,好评,中评,差评这几个分类.

另外一个需要我们注意的是page,通过分析发现网站最多展示100页的数据,可以采用循环的方式进行遍历.判断如果没有评论内容直接退出就可以了.

因为需要登录.这边使用世界最大同性交友网站的开源模块进行登录

返回的session可以保存到本地,这样不需要重复登录了.

然后就是构建完整的url,请求返回评论数据

数据解析

最后数据保存

修改参数,分别爬取好评与差评.接下来就是数据分析的过程

这里使用pandas,matplotlib,seaborn 这几个包.

import jieba
import wordcloud
import imageio
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
sns.set()
plt.rcParams['font.sans-serif'] = ['SimHei']
%matplotlib inline

读取数据

df = pd.read_csv('comments.csv')
bd_df = pd.read_csv("comments_bad.csv")

发现没有为空的字段

将creationTime 转化成日期字段,并且新增加一个日期的列

df['creationTime'] = pd.to_datetime(df['creationTime'])
df['date'] = df.creationTime.dt.date

首先看看不同日期的评论数

f,ax = plt.subplots(figsize=(10,4))
sns.countplot(df['date'],data=df)
plt.xlabel("日期")
plt.ylabel("评论数量")
plt.title("华为P40Pro 不同日期的评论数",fontsize=20)
plt.xticks(rotation=45)

f,ax = plt.subplots(figsize=(10,4))
sns.countplot(df['productColor'],data=df)
plt.xlabel("颜色")
plt.ylabel("销售量")
plt.title("华为P40Pro 不同颜色的销售量",fontsize=20)

f,ax = plt.subplots(figsize=(10,4))
sns.countplot(df['productSize'],data=df)
plt.xlabel("规格配置")
plt.ylabel("销售量")
plt.title("华为P40Pro 不同规格配置的销售量",fontsize=20)

最后看看用户评论的关键词有哪些,使用jieba,wordcloud模块做词云

comments_list = df['content'].values.tolist()
[i.strip() for i in comments_list]
comments_str = "".join(comments_list)
txtlist = jieba.lcut(comments_str)
string = " ".join(txtlist)
mk = imageio.imread("star.png")
w = wordcloud.WordCloud(mask=mk)

w = wordcloud.WordCloud(width=1000,
                        height=700,
                        background_color='white',
                        font_path='C:\Windows\Fonts\simfang.ttf',
                        mask=mk,
                        scale=15
                       )
w.generate(string)
w.to_file('P40Pro.png')

如图所示,基本与发布会上所宣传的亮点是对应的.拍照毫无疑问是最大的亮点.

另外对差评也做了一个词云

有吐槽拍照的,吐槽音效的,还有大挖孔,续航这些等等.

小米10的我就不上代码了,代码跟上面是一致的,修改一下参数就可以了,直接上图:

好评词云:

差评词云:

由于网站只能显示100页的数据,数据量只有接近1000条左右.数据量还是有点小,分析结果就是这样.看了这些,你知道换什么手机了吗?如果想了解其他的手机,可以将PproductID这个参数换成你想要了解的手机ID,就可以了.

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值