基于scrapy框架的京东数据分析系统设计与实现
作者:冯传新
来源:《价值工程》2018年第28
        摘要:基于大数据技术对客户信息进行行为分析和预测,已经引起越来越多的企业进行关注。本文根据京东购物网站的各个店铺网页分析,并通过数据挖掘,数据分析,完成了一个基于Django web框架搭建的一个简易的后台,然后将分布式所抓取的数据和数据分析连接起来,并将分析所得结果返回给前端显示的一个京东购物数据分析系统。从而对京东商铺客户评价进行分析,获取该商品的质量优劣,可以迅速的帮助用户获取商品的很多重要信息。
        Abstract The behavior analysis and prediction of customer information based on large data technology has caused more and more enterprises to pay attention to it. According to the data mining data analysis of the every store website in the JINGDONG mall a simple backstage is completed based on the Django web framework and then the captured data and analysis of distributed data analysis are linked and the results are sent to a data display front-end analysis system of JINGDONG mall. Therefore and the quality of the prod
uct can be obtained by analyzing the evaluation of the JINGDONG mall customers. It can help the users to obtain many important information of the commodity quickly.
        关键词:数据分析系统;python2.7Django;数据挖掘;数据分析
        Key words data analysis systempython2.7Djangodata miningdata analysis
        中图分类号:TP31 文献标识码:A 文章编号:1006-4311201828-0255-04
        0 引言
        随着大数据的发展、以及国家推动实施大数据的号召,各个行业都应加强信息化和工业化深度的融合,加快进入数字经济时代。当前网络购物已经成为人们生活不可分割的一部分,但面对琳琅满目的商品,人们需要去浏览和对比各个店铺的信息,如好评,差评,购买人数等繁琐的步骤。通过分析网购活动,收集每个商家的所有有用信息,并对这些大数据进行分析,将对消费者有用的信息直接简单明了的展示给客户。
        本课题的提出意在开发一个面向消费者的一个购物网站数据分析系统,以京东购物网站
为例,根据京东购物网站数据分析系统的实现,基于python2.7scrapy爬虫框架,redis数据库以及Django web框架,pandas数据分析模块等技术进行综合运用,从而开发实现一套以数据挖掘及分析为核心的京东商城数据分析系统。
        1 系统关键技术研究
        整个系统使用python2.7编程语言,开发平台使用pycharm作为开发平台,数据挖掘使用scrapy开源框架,redis作为数据库,数据分析以pandas作为数据分析工具,以Django web框架搭建一个简易的web后台。具体的研究内容包括了以下这几个方面:
        ①研究完成该系统的关键技术:scarpy+redis实现分布式爬虫,pandas实现数据分析,django实现web展示;
        ②对京东商城进行网页源代码分析以及爬取所用信息,对所用信息进行分析提炼,以词云,图表形式展现出来;
        ③使用python编程语言,实现数据挖掘、数据分析、前端展示三大部分。
        2 系统需求分析
        2.1 总体需求
        京东数据分析系统是以京东网络购物网站为研究对象,主要目的是获取给定商铺的url,通过系统分析,直接将商铺的商品信息,及评论中对商品评价的关键词直接呈现给消费者,使消费者对商品信息一目了然,从而节约大量时间。
        2.2 性能需求
        系统开发的总体任务是实现京东商城的自动化爬取及分析,以一种快速、全名、高提练度和高对比度的信息获取和展示方式。
        2.3 开发环境
        Python2.7 + Pycharm5.7 + Redis4.0 + Window 10
        3 京东数据分析系统设计
        3.1 数据库设计
        数据挖掘中,爬取数据时,单进程将会使爬虫的效率严重下降,请求返回的等待时间会消耗大量时间,而分布式爬虫却可以大大降低时间的消耗。Redis数据库是开源且用ANSI C语言编写、支持网络、可基于内存一个持久化的日志型、key-value数据库,而且支持各种语言的ApiRedis就是一个数据库类型的系统,但它在分布式中,由于它的队列性特别的好用,所以分布式开发中它成为一个不错的选择,本系统采用Redis作为分布式爬虫数据库。
        本系统数据库主要由商品抓取记录表和商品分析结果表两部分组成。
        ①商品抓取记录表(Command)。
        ②商品评论分析结果表(Result)。
        3.2 数据爬取模块设计
        该模块负责系统中源数据的集成,采用分布式抓取,快速的在短时间内尽量抓取足够多的商品评价,通过Chrome的抓包分析出京东网上商城的评价请求URL,检测Cooke之类的反爬措施等,编码利用Scrapy框架抓取京东商城物品评价信息存入数据库以备用。
        具体步骤如图1所示。
        4 京东数据分析系统
        平台搭建、数据抓取、数据分析、项目的功能模块的实现。
        4.1 平台的搭建
        本项目以python2.7作为开发语言,本项目主要由ScrapyDjango框架搭建而成,所以在进行项目开发前需要搭建好相应的环境。
        scrapy框架搭建:
        scrapy是一个非常好用的爬虫框架,进入cmd命令窗口,进入jd_analysis-master目录下输入以下命令便可创建一个jd_spiders为名称的项目,即scrapy startproject jd_spiders,便可得到一个spiders文件夹及其目录结构。
        4.2 数据爬取模块实现
        抓取的url起始页,由用户输入的京东商铺开始,代码如图2所示。
        在使用python爬虫爬取数据地时候,经常会遇到一些网站的反爬措施,一般针对于headers中的user-agent,如果没有对headers进行设置,user-agent会声明自己是python脚本,一般有反爬想法地网站,会拒绝这样的连接,而修改headers可以将自己地爬虫脚本伪装成浏览器地正常访问,来规避这一机制。Headers的配置如图3所示。
        4.3 数据分析模块实现
        此模块主要用于分析爬取的数据,并图形化,并在前端展示。以百富帝纯棉四件套商品为例,客户只需输入该商品的url,即可开始分析,总体数据分析如图4所示。
        好评数据如图4所示。
        该商品不同颜购买数量关系图如图4所示,图中玫瑰金三种系列颜销量最好,分别达到34.667%21.333%16.000%,其余系列都没有达到10%
        购买渠道占比分析图如图5所示,从中可以看出移动端渠道购买的为92.8%,网页端购物渠道为7.2%
        购买用户的等级分布图如图6所示,前三名分别是PLUS会员、银牌会员和金牌会员,百分比分别达到了32.4%23%18%django网站。
        至此数据数据分析完成,已将该商品的全部有用信息即商品评价、颜销量、购买时间、购买渠道和用户等级分别展示给了用户。
        5 结束语
        数据是一个企业的核心无形竞争力,在这样的环境下,更需要提炼每个行业的有用信息,促进每个行业的利益最大化。
        本文以电商平台为研究对象,只有通过数据挖掘对用户的分析,才能更好地实现用户信息的数据化、程序化,才能精准营销,一方面对于消费者来说,可以更直观地享受消费过程,另一方面对于销售者来说,可以更容易把控用户的喜好,抓住用户,培养用户习惯,提高产业的服务和收益。所以数据挖掘对于提升电商平台的用户黏度又有着其非凡的意义,能够促进电商平台的发展,促进电子商务的发展。
        参考文献:
        [1]钱程,阳小兰,朱福喜.基于Python的网络爬虫技术[J].黑龙江科技信息,201636):273.
        [2]谢克武.大数据环境下基于python的网络爬虫技术[J].电子制作,20179):44-45.
        [3]李昊,张敏,冯登国,等.大数据访问控制研究[J].计算机学报,20171):72-91.
        [4]胡一.基于大数据的电子商务个性化信息推荐服务模式研究[D].吉林大学,2015.
        [5]濮文强,曹磊,夏斌.基于Django框架的关键词排名监控系统设计[J].微型机与应用,20173620.
        [6]朱蔚恒,陈健,印鉴.数据挖掘在电子商务中的应用[J].计算机工程,2002288):73-74.