这里写自定义目录标题

  • 目的
  • 工具
  • 爬虫
  • 数据预处理
  • 数据分析

目的

随着网上购物的流行,各大电商竞争激烈,为了提高客户服务质量,除了打价格战外,了解客户的需求点,倾听客户的心声也越来越重要,其中重要的方式就是对消费者的文本评论进行数据挖掘。

工具

1、Python3.7 + Pycharm
2、Google浏览器

爬虫

1、获取相应的URL
①本文对京东平台的手机进行爬虫,首先进入京东商城,选择一款手机,这里以华为P30为例

②按下F12,进入开发者工具,选择Network,点击下一页评论,刷新网页,在Name一栏找到productPageComments京东评论所在的数据包,复制Headers这里的URL并保存在一个txt中用于分析,并找到user-agent用于爬取时的浏览器伪装

③通过前三页的Request URL可以分析出京东手机每一页的评论都是根据page的增加来获取

④通过preview可以看到评论被服务器放在comments标签下,这里有每一位用户的评论信息,包括用户id、评论时间、产品型号和颜色等等,其中content对应的就是用户评论的内容。这样我们就能通过正则表达式解析出我们需要的内容。

⑤下面我们就通过上面的准备工作,开始爬取数据

import urllib.request
import re
import requests
import time
import random
import json# 设置请求头
headers = ('User-Agent', 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36')
opener = urllib.request.build_opener()
opener.addheaders = [headers]
urllib.request.install_opener(opener)# 获取URL
url = 'https://sclub.jd.com/comment/productPageComments.action?callback=&productId=100002749549&score=0&sortType=5&pageSize=10&isShadowSku=0&fold=1'f = open('E:/comments/华为P30.txt', 'w', encoding='utf-8')
for i in range(0, 20):t = str(time.time()*1000).split('.')pagram = {'page': i+1,'callback': 'fetchJSON_comment98vv4092%s' % (int(t[1])+1)}# print(pagram)# 随机休眠 行为分析time.sleep(random.random())# 发送http请求response = requests.get(url, params=pagram)# 入库,文件data = response.text# 解析数据data = re.findall(r'{.*}', data)[0]# 格式成字典data = json.loads(data)data = data['comments']comment_data = {}for item in data:comment_data['手机型号'] = item['referenceName']comment_data['昵称'] = item['nickname']comment_data['评论内容'] = item['content']f.write('手机型号:'+item['referenceName']+'\n'+'昵称:'+item['nickname']+'\n'+'评论内容:'+item['content']+'\n')
f.close()

数据预处理

当我们通过爬虫获取到我们想要的数据之后,进行简单的观察,可以发现评论的一些特点:
文本短,基本上大量的评论就是一句话.
情感倾向明显:明显的词汇 如”好” “可以”
语言不规范:会出现一些网络用词,符号,数字等
重复性大:一句话出现词语重复
数据量大.
故我们需要对这些数据进行数据预处理
数据预处理包括:去重、分词等
下面我们将进行数据清洗

import jieba# 评论内容进行去重
def quchong(infile, outfile):infopen = open(infile, 'r', encoding='utf-8')outopen = open(outfile, 'w', encoding='utf-8')lines = infopen.readlines()list_1 = []for line in lines:if line not in list_1:list_1.append(line)outopen.write(line)infopen.close()outopen.close()quchong("E:/comments/华为P30.txt", "E:/comments/P30去重.txt")# jieba.load_userdict('userdict.txt')
# 创建停用词list
def stopwordslist(filepath):stopwords = [line.strip() for line in open(filepath, 'r', encoding='utf-8').readlines()]return stopwords# 对评论内容进行分词
def seg_sentence(sentence):sentence_seged = jieba.cut(sentence.strip())stopwords = stopwordslist('stopwords.txt')  # 这里加载停用词的路径outstr = ''for word in sentence_seged:if word not in stopwords:if word != '\t':outstr += wordoutstr += " "return outstrinputs = open('E:/comments/P30去重.txt', 'r', encoding='utf-8')
outputs = open('E:/comments/P30分词.txt', 'w')
for line in inputs:line_seg = seg_sentence(line)  # 这里的返回值是字符串outputs.write(line_seg + '\n')
outputs.close()
inputs.close()
print('分词完毕')

数据分析

上面我们已经通过去重和jieba分词将爬取的内容进行了预处理,接下来就开始对处理过的数据进行分析,包括词频统计、关键词提取以及词云的生成等

# 词频统计
import jieba.analyse
from collections import Counter  # 词频统计with open('E:/comments/P30分词.txt', 'r', encoding='utf-8') as fr: data = jieba.cut(fr.read())
data = dict(Counter(data))with open('E:/comments/P30词频.txt', 'w', encoding='utf-8') as fw:  # 读入存储wordcount的文件路径for k, v in data.items():fw.write('%s, %d\n' % (k, v))
import jieba.analyse
import matplotlib.pyplot as plt
from wordcloud import WordCloud# 生成词云
with open('E:/comments/P30词频.txt') as f:# 提取关键词data = f.read()keyword = jieba.analyse.extract_tags(data, topK=50, withWeight=False)wl = " ".join(keyword)# 设置词云wc = WordCloud(# 设置背景颜色background_color = "white",# 设置最大显示的词云数max_words=2000,# 这种字体都在电脑字体中,一般路径font_path='C:/Windows/Fonts/simfang.ttf',height=1200,width=1600,# 设置字体最大值max_font_size=100,# 设置有多少种随机生成状态,即有多少种配色方案random_state=30,)myword = wc.generate(wl)  # 生成词云# 展示词云图plt.imshow(myword)plt.axis("off")plt.show()wc.to_file('E:/comments/P30.png')  # 把词云保存下

京东手机评论文本挖掘与数据分析(Python)相关推荐

  1. python数据采集课设-京东手机评论爬取与分析

    数据采集模块: 1.手机评论采集,数据信息(评论,评分,用户,评论发布时间) 爬取不同的手机评论,需要设置不同的id 如上图红圈处即为手机vivo S12的id import requests imp ...

  2. python爬取京东手机数据_实例解析Python如何实现爬取京东手机图片

    本文主要为大家分享一篇Python如何实现爬取京东手机图片的方法,具有很好的参考价值,希望对大家有所帮助.一起跟随小编过来看看吧,希望能帮助到大家. 运行环境Python3.6.4#爬取京东手机图片i ...

  3. python批量评论_python批量爬取京东手机评论信息及星级

    本科生在读,如有问题欢迎指正 爬取京东评论信息:评论信息是动态加载的,所以在商品详情页不能直接爬取评论. 下面以一款手机为例,详细介绍python批量爬取京东评论. 找到评论区域 image.png ...

  4. 京东手机评论分析(一):词云

    开篇 先做一些简单的评论分析吧,大部分还是借助于不同的python工具,不得不说很多中文的基本任务还是做得效果比较一般的,毕竟中文的复杂程度可不是英文可以比拟的,这篇就是简单地生成一个词云,是以词频为 ...

  5. 京东手机评论数据挖掘之二:情感分析

    用Naive Bayes方法对识别出的新词做情感极性评分,得到的结果: Postive: http://121.89.176.173/emot_new_gd.html Negtive: http:// ...

  6. python爬取京东商品数据要先登录_京东商品评论情感分析|文本数据预处理

    本文爬取了十款热销手机的文本评论数据后,首先对文本评论数据做文本预处理,文本评论数据中存在大量的无价值信息,引入无用的文本数据,对其作情感分析,显然没有价值,得出的文本挖掘结果也不尽人意.所以对于文本 ...

  7. pythonallowpos_利用Python抓取并分析京东商品评论数据

    2.1 内容简介 本章主要介绍如何利用Python抓取京东商城商品评论信息,并对这些评论信息进行分析和可视化.下面是要抓取的商品信息,一款女士文胸.这个商品共有红色,黑色和肤色等颜色, 70B到90D ...

  8. Python爬取京东商品评论数据

    一.前言 本文将承接笔者的上篇文章Python爬取京东商品数据,使用京东商品唯一id字段"sku"拼接url,得到真实的京东商品评论网址,进而解释数据并保存到文件中,所爬取到的数据 ...

  9. 利用python爬取京东平台评论及图片并进行分析

    一.背景及目的 在淘宝.京东等网络平台上购物,逐渐成为大众化的购物方式.但假冒伪劣产品在这个摸不着实物的购物平台严重危害着消费者的购物体验,即使我们可以通过七天无理由退货退款来维护我们的合法权益,但是 ...

  10. 京东手机销售数据分析,华为和三星的距离还有多远?

    华为和三星的距离还有多远? 17年的时候,华为曾放言 "三年之内超过苹果,五年之内超过三星",成为全球第一手机厂商.可没想到刚过去一年,在知名研究公司 IDC 发布的 2019 年 ...

最新文章

  1. 占用过高_Windows10电脑磁盘占用率过高,用这二招轻松解决
  2. 【UWP】拖拽列表项的排序功能实现
  3. linux字符设备移动硬盘,Red Hat Enterprise Linux 7.5挂载NTFS移动硬盘
  4. GridView合并列下的行单元格的方法
  5. [python opencv 计算机视觉零基础到实战] 四、了解色彩空间及其详解
  6. mysql挂载数据卷_记一次生产数据库数据文件进行分区转移
  7. bzoj 2245 [SDOI2011]工作安排【最小费用最大流】
  8. SQL Server窗口函数:ROWS与RANGE
  9. Android 系统(182)---Android.mk的用法和基础 amp;amp; m、mm、mmm编译命令
  10. 《Microsoft SQL Server 2008 Internals》读书笔记--目录索引
  11. golang net/http访问https
  12. 关于TFS的文档和报告打叉的解决
  13. PyQt5,资源文件 .qrc 的使用
  14. Go 依赖注入库dig
  15. MySQL的sql大于号(小于号)的使用
  16. doc转html poi,java poi doc 转html
  17. c语言 中文转拼音,汉字转换拼音解决思路
  18. Unity3D在windows10下小问题解决
  19. 解密新晋信息窃取木马Spymel
  20. 我们采访了三位学生:他们写代码、95 后、来自大陆和台湾

热门文章

  1. 浅谈领导力理解和体会
  2. 斗地主 -(一) 如何开发斗地主
  3. 企业经营模拟(ERP沙盘、ERP电子沙盘)分析总结报告与心得分享
  4. axure不能导出图片_Axure7.0导出图片提示内存不足,如何解决?
  5. 计算机编程语言排行榜—TIOBE世界编程语言排行榜(2020年4月份最新版)
  6. 2015062602 - 星际迷航.红杉书评
  7. android距离传感器的应用
  8. 帝都地铁隧道里的动态广告是什么原理?
  9. c语言里strcpy作用是什么,c语言中的strcpy是什么意思?
  10. 小武实习的debug日记