Amazon电商数据分析——数据获取

  最近一段时间主要重心在Amazon电商数据分析上,这是一个偏数据分析和可视化的项目。具体来说就是先获取Amazon的商品数据,数据清洗和持久化存储后作为我们自己的数据源。分析模块和可视化模块基于数据进行一系列的操作。

  显然,整个项目中最基本,也是最重要的就是前期数据的获取,本篇文章就是针对数据获取和清洗过程进行一个简单的介绍和总结。

  整个项目我们采用了Python作为开发语言,其中可视化模块基于Django搭建,当然在数据获取,即爬虫模块,我们也是采用了Python作为我们的开发语言。

   对于爬虫模块,因为需求是确定的,并且爬取站点也是固定的——Amazon.com,因此在爬虫模块主要需要考虑的是调度问题、页面解析问题以及流程自动化的问题。

  首先说明一下爬虫的整体架构,一开始我们是采用单机器爬取,启动方式也很简单——命令行启动,但这样带来的问题是显著的,不稳定,需要手动启动任务。之后我们将爬虫部署成服务,对于进入的任务,可能是用户提交的,也可能是我们内部提交的,通过一个提交系统加入到服务队列中,之后爬虫服务检测并启动爬取任务。这样一定程度上解决了不稳定的问题,但随着数据增长,带宽等因素凸显出来,因此,我们又加入一些机器,构建一个小型的爬虫集群来分布式爬取。但这不算是真正意义上的分布式,并没有节点

  具体实现方面我们采用Python的一个开源爬虫框架——Scrapy,该框架提供了基本的调度、页面爬取等功能。我们需要做的是基于该框架设定DOM解析方案和后续数据的处理存储方案,同时基于该框架搭建一个小型的伪分布式爬取系统。

  下面来介绍一下我们在爬虫设计过程需要考虑的几个问题。

  首先页面解析问题,因为JS异步加载的原因,爬虫实际得到的页面DOM元素和我们在浏览器中打开页面得到的DOM元素有点区别,这就不能完全依靠浏览器来定位具体的DOM元素。其次,在访问达到一定次数,特别是并发访问请求达到一定次数后,Amazon会对请求进行封杀,返回Robot Check页面甚至是500 Server Error。针对这种情况,一种解决方案是减少并发请求的数目,根据我们实际测试发现,每秒钟发送的请求如果超过50条会被Amazon返回500 Server Error(可能现在Amazon会不断更新策略),因此我们设置了并发请求数为32,即一秒钟一台机器发送32个请求。对于可能会有Robot Check的情况,这个我们还在探索阶段,因为此类页面出现较少且集中出现在商品信息页面,而该页面由于信息比较固定可以较长时间不更新。目前是加入Proxy作为下载中间件(DownloadMiddleware)。另外考虑到可能因为国内访问过于频繁的话也会导致此类问题的出现,我们目前正在将爬虫迁移到Amazon EC2上,一来比较稳定,另外访问也会比在国内机器上快点。

  其次是调度问题。在单机器单任务的爬虫中不存在这样的问题。但是在多机器多任务中这是一个比较重要的问题,多个任务提交后怎么进行调度,如果有优先级的话是按照优先级来,否则是默认放在任务队列里依次进行。在我们的爬虫系统中,多台机器组成的爬虫系统是由一个调度控制,当一个爬取任务提交后,调度将任务拆分并分发到不同的爬虫机器上,在单个的爬虫机器上,会有一个爬取队列,队列中是分发到该机器上的所有爬取子任务,在目前是默认从队列中依次获取任务,一台机器上能同时启动六个爬取任务进行并行爬取。

  最后是流程的自动化问题。在我们的系统中,需要实现任务提交后,在网站上直接看到处理后的数据以可视化图表展现。这就需要将整个流程实现自动化,提交任务后开始爬取数据,爬取任务完成后对数据进行处理和归并,生成一些统计信息,最终得到规范化的数据并在前端可视化展示。这一系列过程主要分为两个阶段,爬取和处理,爬取阶段任务提交分发后爬虫会启动爬取任务,在爬取完成后,利用Scrapy的接口实现了对爬取任务状态的修改,例如对于一个任务T,启动时在数据库中加入状态,{‘name’: T, ‘jobid’: ‘Task_id’, ‘status’: ‘running’},在爬取完成后,修改状态为 finished,同时,会有定时脚本轮询看数据库中各任务是否完成。如果完成的话,启动数据处理的流程。数据处理完成后归并数据到正式的项目数据库中,完成数据的前端可视化展现。由于本项目部署在Linux服务器上,因此就直接采用了linux下的cronjob来实现了脚本的轮询和执行。简单来说,写入几个crontab后,启动cronjob,这几个脚本串接了上述说的每个流程,使其成为完整的一套流程。

  上述说的是数据爬取过程中的几个主要问题,也是比较重要的问题,说实话,即便是现在的系统,仍然没有完美解决这几个问题,解析依然会遇到Amazon的封杀,自动化的鲁棒性太弱等等。这可能是下一阶段需要考虑的问题,同时,数据爬取存储后依然有不少脏数据(Dirty Data),需要进一步的清洗。

Amazon电商数据分析——数据获取

时间: 2024-09-30 09:45:34

Amazon电商数据分析——数据获取的相关文章

四周上手BI电商数据分析视频教程

课程下载地址:https://pan.baidu.com/s/1Fkn9HQJstYPOckZ3DypCAA 提取码: 5xss 四周上手BI 电商数据分析(从理论-->业务-->工具-->项目实战 全流程实战) 本课程从经典电商业务分析入手,案例贯穿,注重实操,在较短的时间里教您快速掌握BI数据分析技巧,让"人人都成为数据师"不再是一句口号! 课程特色:1.绝无仅有PowerBI(微软大数据分析工具)独家实战型培训2.采用的是最新MOS-2016微软认证数据分析师标

电商数据分析基础指标体系(8类)

目录 1.总体运营指标 2.网站流量指标 3.销售转化指标 4.客户价值指标 5.商品类指标 SKU SPU 6.市场营销活动指标 7.风控类指标 8.市场竞争指标 构建电商数据分析的基础指标体系,主要分为8类指标. 1.总体运营指标 总体运营指标:从流量.订单.总体销售业绩.整体指标进行把控,起码对运营的电商平台有大致了解,到底运营的怎么样?是亏了?还是赚了? 流量类指标 独立访客数(UV) 页面访客数(PV) 人均页面访问数 订单产生效率指标 总订单数量 访问到下单转化率 -- 漏斗模型 总

如何利用BI搭建电商数据分析平台

某电商是某大型服装集团下的重要销售平台.2015 年,该集团品牌价值达数百亿元,产品质量.市场占有率.出口创汇.销售收入连年居全国绒纺行业第一,在中国有终端店3000多家,零售额80 亿.其羊绒制品年产销能力1000万件以上的规模,占有中国的40%和世界的30%的市场份额. 该集团旗下的电商部门主要负责服装公司线上运营工作,涉及的平台有淘宝.天猫.京东.苏宁易购.唯品会等,每年涉及的流水金额大概在1亿RMB左右. 项目背景: 原来该公司旗下各品牌和部门的IT管理部门是独立的,没有归属于服装公司下

[原创]如何利用BI搭建电商数据分析平台

某电商是某大型服装集团下的重要销售平台.2015 年,该集团品牌价值达数百亿元,产品质量.市场占有率.出口创汇.销售收入连年居全国绒纺行业第一,在中国有终端店3000多家,零售额80 亿.其羊绒制品年产销能力1000万件以上的规模,占有中国的40%和世界的30%的市场份额. 该集团旗下的电商部门主要负责服装公司线上运营工作,涉及的平台有淘宝.天猫.京东.苏宁易购.唯品会等,每年涉及的流水金额大概在1亿RMB左右. 项目背景: 原来该公司旗下各品牌和部门的IT管理部门是独立的,没有归属于服装公司下

上海远丰:大数据时代 电商如何做好运营数据分析

2015年深圳互联网领袖论坛上,马云阐述了“DT时代”概念,提出我们已经从IT时代进入了数据时代,数据让一切变得透明.直观.大数据时代,依托于电子商务快速发展,数据分析已成为企业在电商混战中脱颖而出的关键.但很多企业意识到网站数据分析的重要性,往往却不知道怎么办. 互联网时代,用户习惯正在发生变革,只有充分了解用户才能打造符合用户预期的产品.电子商务相对于传统零售业来说,最大的优势在于一切都可以通过数据化来监控和改进.通过数据可以看到用户从哪里来.如何组织产品可以实现很好的转化率.投放广告的效率

数据分析&大数据分析如何应用于电商行业?

这几年想做电商和进入电商行业的人越来越多了,不管是自己开的淘宝店还是微店,你会发现自己朋友圈里面,总会有那么几个已经在做电商的.电商这么火,那对于做电商而言什么是最重要的呢?答案毫无疑问是数据·大数据.今天我们就来好好聊聊数据分析·大数据分析在电商行业中的应用. 电商行业相对于传统零售业来说,最大的特点就是一切都可以通过数据化来监控和改进.通过数据可以看到用户从哪里来.如何组织产品可以实现很好的转化率.你投放广告的效率如何等等问题.当用户在电商网站上有了购买行为之后,就从潜在客户变成了价值客户.

电商打折套路分析 —— Python数据分析练习

电商打折套路分析 --2016天猫双十一美妆数据分析 数据简介 此次分析的数据来自于城市数据团对2016年双11天猫数据的采集和整理,原始数据为.xlsx格式 包括update_time/id/title/price/店名,共5个字段,其中id为商品的唯一标识,店名为品牌名. 分析工具 主要使用了Python中的Pandas库进行数据处理,利用matplotlib绘制分析图表,利用bokeh进行了可视化展示. 当前使用版本:Python 3.6.5 |Anaconda, Inc.| (defau

电商交易数据分析

1.分析目的:根据过往电商成交数据进行数据分析发现规律和问题从而指导业务 2.数据 导入库 导入数据 加载好数据之后,第一步先分别使用describe和info方法看下数据的大概分布 加载device_type 3.数据清洗 orderId orderId在一个系统里是唯一值 先看下有没有重复值 如果有重复值一般最后处理,因为其他的列可能会影响到删除哪一条重复的记录 先处理其他的列 userId userId只要从上面的describe和info看下值是不是在正常范围就行 对于订单数据,一个用户

大数据入门第一课 Hadoop基础知识与电商网站日志数据分析

var link="www.marenzy.top"//完整视频资源获取地址,复制链接在浏览器打开 var vx="aishangit666"//如链接失效可添加微信 本课程从Hadoop核心技术入手,以电商项目为依托,带领你从0基础开始上手,逐步掌握大数据核心技术(如:HDFS.YARN.MapReduce以及Hive),并使用这些技术进行实战,最终完成电商行为日志分析项目,让你轻松入门大数据! 物超所值的精品课程,只懂Java基础也能轻松入门大数据 知识覆盖全面