最具影响力的数字化技术在线社区

168大数据

 找回密码
 立即注册

QQ登录

只需一步,快速开始

1 2 3 4 5
打印 上一主题 下一主题
开启左侧

Python 分布式抓取和分析京东商城评价

[复制链接]
跳转到指定楼层
楼主
发表于 2017-4-20 11:57:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多数据大咖,获取更多知识干货,轻松玩转大数据

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
互联网购物现在已经是非常普遍的购物方式,在互联网上购买商品并且使用之后,很多人都会回过头来对自己购买的商品进行一些评价,以此来表达自己对于该商品使用后的看法。商品评价的好坏对于一个商品的重要性显而易见,大部分消费者都以此作为快速评判该商品质量优劣的方式。所以,与此同时,有些商家为了获得好评,还会做一些 "好评优惠" 或者 "返点" 活动来刺激消费者评价商品。
既然商品评价对于消费者选购商品而言至关重要,那么我想试试可以从这些评价信息中获取到怎样的价值,来帮助消费者快速获取到关于该商品的一些重要信息,给他们的购物带来更加可靠地保证?
所以,我认为,一种快速、全面、高提炼度和高对比度的信息获取和展示方式将会非常必要。 于是,我采用分布式快速抓取京东的评价信息,然后使用 pandas 对抓取到的数据进行分析。
话不多说先附上使用地址
体验地址:http://awolfly9.com/jd/
想要分析京东商城的商品评价信息,那么需要做些什么呢  
  • 采用分布式抓取,尽量在短时间内抓取需要分析的商品足够多的评价信息
  • 将抓取到的评价信息都存储到数据库
  • 从数据库中取出所有数据进行数据分析
    • 生成好评的词云,并且获取关键字
    • 生成中评的词云,并且获取关键字
    • 生成差评的词云,并且获取关键字
    • 分析购买该商品不同颜色的比例,生成柱状图
    • 分析购买该商品不同配置的比例,生成柱状图
    • 分析该商品的销售数量和评论数量和时间的关系,生成时间则线图
    • 分析该商品不同省份购买的的比例,生成柱状图
    • 分析该商品不同渠道的销售比例,生成柱状图

  • 利用 Django 搭建后台,将数据抓取和数据分析连起来
  • 前端显示数据抓取和分析结果

分布式抓取京东商城的评价信息
采用分布式抓取的目的是快速的在短时间内尽量抓取足够多的商品评价,使分析结果更精确
  • 找出评价请求 URL 规律,获取到如下 URL 组合链接
  • 利用 Chrome 插件 Postman 测试链接是否可用,发现京东获取评价信息并没有验证 Cookie 之类的反爬措施
  • 开始编码利用 scrapy 抓取京东商城的商品评价信息并存入数据库以备使用

数据分析
  • 从数据库中取出相应数据,开始分析
  • 使用 python 的扩展库 wordcloud 分别提取好评、中评、差评的关键字,并且生成相应的词云图片
  • 分析该商品不同颜色的销量占比,并且生成柱状图,例如 iphone7 的不同颜色金色、玫瑰金色、银色、黑色、亮黑色、还有最新出的红色的占比
  • 分析该商品不同配置的销量占比,并且生成柱状图,例如 iphone7 32G 、 64G、128G 存储
  • 分析该商品销售和评论时间并且生成折线图,分析出商品在什么时间最畅销
  • 分析用户购买该商品的渠道,例如用户通过京东 Android 客户端、微信京东购物、京东 iPhone 客户端购物的比例,并且生成柱状图
  • 分析购买该商品的用户的地域省份。例如北京、上海、广州那个城市在京东上购买 iPhone7 的人更多
  • 将以上分析结果都存储保留

Django 后台 WEB
使用 Django 搭建一个简易的后台 jd_analysis,将分布式抓取数据和数据分析连起来,并且将分析结果返回前端显示。
  • jd_analysis 提供一个接口接受用户请求分析的京东商城商品的 URL 链接
  • jd_analysis 接受到商品链接后开启爬虫进程开始抓取需要分析的商品的名称和评价数量
  • 组合出完整的评价链接插入到 redis 中,实现分布式爬虫抓取,尽可能在短时间内抓取足够多的该商品评价信息(我现在是 30s 时间大概可以抓取 3000 条评价信息)
  • 主服务器等待一定的抓取时间,例如主服务器等待 30s,30s 后一定要给前端返回分析结果,所以等 30s 后清空 redis 中该商品的链接,从服务器没有读取不到需要抓取的链接也就自动关闭
  • 开启分析进程,开始分析抓取到的所有数据,并且生成图标等信息

前端展示
在客户端第一次请求时,生成一个 GUID,并且存储在 cookie 中。然后开启一个定时器,带上 GUID 不断的向 jd_analysis 后台请求结果。jd_analysis 后台利用请求的 GUID 从 redis 中获取抓取信息和分析结果的所有内容,返回给前端。前端显示请求到的结果。
最后附上两张效果图
购买和评论时间折线图
购买渠道柱状图
大功告成
以上就是完整的抓取京东商品的评价信息并且使用 pandas 分析评价然后利用 Django 搭建后台前端显示抓取和分析结果的所有步骤。

楼主热帖
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享 分享淘帖 赞 踩

168大数据 - 论坛版权1.本主题所有言论和图片纯属网友个人见解,与本站立场无关
2.本站所有主题由网友自行投稿发布。若为首发或独家,该帖子作者与168大数据享有帖子相关版权。
3.其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和168大数据的同意,并添加本文出处。
4.本站所收集的部分公开资料来源于网络,转载目的在于传递价值及用于交流学习,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。
5.任何通过此网页连接而得到的资讯、产品及服务,本站概不负责,亦不负任何法律责任。
6.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源,若标注有误或遗漏而侵犯到任何版权问题,请尽快告知,本站将及时删除。
7.168大数据管理员和版主有权不事先通知发贴者而删除本文。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

关于我们|小黑屋|Archiver|168大数据 ( 京ICP备14035423号|申请友情链接

GMT+8, 2024-4-20 16:39

Powered by BI168大数据社区

© 2012-2014 168大数据

快速回复 返回顶部 返回列表