基于Scrapy框架京东网站笔记本电脑评论数据爬取和分析

2020-04-22 20:36方芳
电脑知识与技术 2020年6期
关键词:数据可视化

方芳

摘要:该文基于Scrapy框架对京东网站上笔记本电脑的评论数据进行了爬取,共爬取了32种品牌,选取其中的“联想(Leno-vo)拯救者Y7000P”笔记本电脑评论数据进行分析,通过pandas提供的模糊匹配方法提取数据,并对数据进行去重、分词和停用词过滤等处理,使用wordcloud库绘制词云图,呈现出的情感数据为商家和用户提供进一步的决策。

关键词:Scrapy框架;Python;数据预处理;数据可视化

中图分类号:TP311 文献标识码:A

文章编号:1009-3044(2020)06-0007-03

1背景

1999年底,随着互联网高潮来临。中国网络购物的用户规模不断上升。2010年中国网络购物市场延续用户规模、交易规模的双增长态势。智能手机的普及更使得网上购物越来越流行,足不出户就能买到性价比高的商品,享受着带来的各项便利和服务。

现在人们对于网上购物的需求变得越来越高,這让京东,淘宝,苏宁易购,当当网等电商平台得到了很大的发展机遇。从近期的数据来看,天猫2017年“双11”这一天的最终交易额就达到1682亿,创下历史新高。京东全球好物节从同年的11月1日到11月11日24时累计下单金额达1271亿元。

巨大的交易额将产生大量的用户评论数据,多数消费者热衷于在网站上留下对产品的真实看法和体验,很多消费者也习惯于在购买产品之前先浏览下用户的评论信息,从而帮助自己选择合适的产品。而各大电商平台也面临着激烈的竞争的同时,除了提高商品质量,压低商品价格外,也需要得到用户的反馈,而反馈信息可以从商品的评论区的文本数据信息得到。

本文将京东电商平台上的笔记本电脑评论信息作为研究对象进行相关文本分析研究,从中得到有用的情感数据,这些数据反映了用户对产品的整体意见和态度,具有很高应用价值。这些情感数据的获取,有利于电商改进营销策略和提升服务质量,促进产品销量,也有利于对应商品的生产厂家产品质量的提升,也有利于消费者了解商品的好坏,是否值得购买。

2相关技术介绍

2.1python

如今,Python已经成为一种再主流不过的编程语言了。它天生丽质,易于读写,非常实用,从而赢得广泛的群众基础,被誉为“宇宙最好的编程语言”。Python是一种跨平台、开源、免费的解释型高级动态编程语言。Python拥有大量的库,且易于学习,可以用来高效的开发各种应用程序。Python语言目前广泛应用于网络爬虫、计算与数据分析、人工智能、自动化运维、云计算等领域。

2.2Scrapy框架

Scrapy是用纯Python实现的一个开源网络爬虫框架,是为了高效地爬取网站数据、提取结构性数据而编写的应用框架。它是一个“5+2”结构,5个模块是指engine,scheduler,item pipe-lines,spiders和downloader。2个模块是engine和spiders以及en_gine和downloader之间的两个中间件模块。

Scrapy的优点有以下几点:

1)开发者在Scrapy框架中只需要将爬取规则添加到代码中就会自动开始数据的采集。

2)开发者使用Scrapy框架开发并不需要接触核心代码。

3)Scrapy是一种跨平台的框架。

3爬虫模块

3.1抓取模块

3.1.1新建Scrapy项目

首先需要在配置Pvthon3.7的pycharm中安装Scrapy库。然后在pycharm终端进入建立Scrapy项目的目录,输入命令scrapy starpmjiect项目名称,命令执行后生成项目的完成目录。

3.1.2明确爬取目标

本次爬虫目标是获取京东网站上笔记本电脑的评论信息,利用Chrome浏览器对目标网站的页面源码结构进行分析。首先打开京东网站首页,在搜索框中输入笔记本,点击搜索,进入笔记本搜索一级页面,根据网页源码信息得到每个店铺的URL地址,根据URL地址进入商品详情页面(又称为二级页面),从页面中获取笔记本电脑品牌和相关评论信息。整个爬虫的流程是,构造笔记本搜索页面初始url→采集店铺地址url→构造商品详情页面URL→抓取评论信息一通过循环模拟翻页获取下一页的url。

3.1.3制作Spiders爬取网页

制作spiders也就是负责爬取和提取数据的爬虫。首先在工程中目录下在终端中输入命令创建一个爬虫,在爬虫中编写代码。具体定义的方法分别是start_requestsO、ProducturlO、Pro-ducrCommentO、ParseO。

3.2存储模块

数据爬取后通过Pipeline.Py将爬取到的数据用户ID,产品,用户评论三个字段存储到CSV文件中,爬取结果的部分数据如下图1所示。

4文本预处理

4.1数据筛选

通过对“产品”这列的统计,共爬取了32种品牌电脑。本文选取了32种品牌中的“联想(Lenovo)拯救者Y7000P”电脑进行分析,通过pandas提供的模糊匹配方法提取数据,另外使用map方法将产品划分成“品牌”和“型号”两列,并且去掉了“产品”列,同时调整了列的排放顺序,依次为用户ID,品牌,型号,用户评价四列,最后另存为jdnew.csv,CSV如图2所示。

具体代码如下所示:

4.2去重

利用pandas的duplicated0方法检查重复的数据,经检测,发现很多行中出现True标记,例如行索引74925,74926,74927,74928,74929对应的值都是True,表明这些行的数据都是重复的,需要进行处理。我们使用drop_duplicatesO函数完成去重。

4.3分词

采用python中的中文分词包“iieba”(结巴分词),对CSV文档中的用户评论数据进行中文分词处理。“结巴分词”提供分词、词性标注、未登录词识别等功能。经过相关测试,结巴分词的精度高达97%以上。它支持三种分词模式:1)全模式:把文中所有可能的词语都扫描出来,存在冗余;2)精确模式:把文本精准的分开,不存在冗余;3)搜索引擎模式:在精准模式的基础上,再次对长词进行切分。此处通过lcutO函数进行分词,共需要提供两个参数,第一个参数表示需要分词的字符串,第二个参数用来控制是否采用全模式分词,这里采用精确模式,代码如下所示。

words=jieba.1cut(str(comment.values),cut_all=False)

4.4过滤停用词

停用词是指在信息搜索中,为了提高搜索效率和节约存储空间,过滤掉某些没有具体意义的字和词,这些字或词被称为停用词。对于中文的停用词,常用的停用词表有哈工大停用词表、四川大学机器学习智能实验室停用词库、百度停用词表。本文采用的是哈工大停用词表过滤。

5数据可视化

使用matplotlib库完成数据可视化,同时结合了wordcloud库绘制词云图。wordcloud模块会将文本中出现频率比较高的词语进行放大显示,而出现频率比较低缩小显示。本文在绘制词云图时使用了背景图片,背景图片是用PIL的库里的imread(1函数来加载的。

从图中可以看出,用户评论比较多的是外形外观,包装保护,运行速度,画面品质等等。图中“不错”,“开机流畅”,“喜欢”这几个字证实用户对此款电脑整体是比较满意的,没有出现负面评论的词。

6结束语

本文使用Scrapy框架爬取了京东网站上的笔记本电脑评论数据,使用Pandas库提取了“联想(Lenovo)拯救者Y7000P”笔记本电脑的评论数据,通过Pyilion语言完成了去重,分词,停用词等数据预处理工作,最后利用matplotlib和wordcloud完成了词云图的展示,从图可以看到用户对此款电脑整体是比较满意。

猜你喜欢
数据可视化
可视化:新媒体语境下的数据、叙事与设计研究
我国数据新闻的发展困境与策略研究