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

简介: 互联网购物现在已经是非常普遍的购物方式,在互联网上购买商品并且使用之后,很多人都会回过头来对自己购买的商品进行一些评价,以此来表达自己对于该商品使用后的看法。商品评价的好坏对于一个商品的重要性显而易见,大部分消费者都以此作为快速评判该商品质量优劣的方式。

互联网购物现在已经是非常普遍的购物方式,在互联网上购买商品并且使用之后,很多人都会回过头来对自己购买的商品进行一些评价,以此来表达自己对于该商品使用后的看法。商品评价的好坏对于一个商品的重要性显而易见,大部分消费者都以此作为快速评判该商品质量优劣的方式。所以,与此同时,有些商家为了获得好评,还会做一些 "好评优惠" 或者 "返点" 活动来刺激消费者评价商品。

既然商品评价对于消费者选购商品而言至关重要,那么我想试试可以从这些评价信息中获取到怎样的价值,来帮助消费者快速获取到关于该商品的一些重要信息,给他们的购物带来更加可靠地保证?

所以,我认为,一种快速、全面、高提炼度和高对比度的信息获取和展示方式将会非常必要。 于是,我采用分布式快速抓取京东的评价信息,然后使用 pandas 对抓取到的数据进行分析。

话不多说先附上使用地址
体验地址:http://awolfly9.com/jd/

想要分析京东商城的商品评价信息,那么需要做些什么呢

8481c8f592b7f349aa84a1de5c171db681516edf采用分布式抓取,尽量在短时间内抓取需要分析的商品足够多的评价信息 
8481c8f592b7f349aa84a1de5c171db681516edf 将抓取到的评价信息都存储到数据库
8481c8f592b7f349aa84a1de5c171db681516edf 从数据库中取出所有数据进行数据分析
    • 生成好评的词云,并且获取关键字

    • 生成中评的词云,并且获取关键字

    • 生成差评的词云,并且获取关键字

    • 分析购买该商品不同颜色的比例,生成柱状图

    • 分析购买该商品不同配置的比例,生成柱状图

    • 分析该商品的销售数量和评论数量和时间的关系,生成时间则线图

    • 分析该商品不同省份购买的的比例,生成柱状图

    • 分析该商品不同渠道的销售比例,生成柱状图

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

分布式抓取京东商城的评价信息

采用分布式抓取的目的是快速的在短时间内尽量抓取足够多的商品评价,使分析结果更精确

8481c8f592b7f349aa84a1de5c171db681516edfiPhone7 https://item.jd.com/3995645.html 为例,通过 Chrome 抓包分析出京东商城的评价请求 URl https://club.jd.com/comment/productPageComments.action?8481c8f592b7f349aa84a1de5c171db681516edfcallback=fetchJSON_comment98vv2940&productId=3995645&score=0&sortType=5&page=1&pageSize=10&isShadowSku=0
8481c8f592b7f349aa84a1de5c171db681516edf找出评价请求 URL 规律,获取到如下 URL 组合链接
8481c8f592b7f349aa84a1de5c171db681516edf利用 Chrome 插件 Postman 测试链接是否可用,发现京东获取评价信息并没有验证 Cookie 之类的反爬措施
8481c8f592b7f349aa84a1de5c171db681516edf开始编码利用 scrapy 抓取京东商城的商品评价信息并存入数据库以备使用

数据分析

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

Django 后台 WEB

使用 Django 搭建一个简易的后台 jd_analysis,将分布式抓取数据和数据分析连起来,并且将分析结果返回前端显示。

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

前端展示

在客户端第一次请求时,生成一个 GUID,并且存储在 cookie 中。然后开启一个定时器,带上 GUID 不断的向 jd_analysis 后台请求结果。jd_analysis 后台利用请求的 GUID 从 redis 中获取抓取信息和分析结果的所有内容,返回给前端。前端显示请求到的结果。

最后附上两张效果图

购买和评论时间折线图

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

购买渠道柱状图
640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

大功告成

以上就是完整的抓取京东商品的评价信息并且使用 pandas 分析评价然后利用 Django 搭建后台前端显示抓取和分析结果的所有步骤。


原文发布时间为:2017-04-19

本文作者:awolfly9

本文来自云栖社区合作伙伴“Python中文社区”,了解相关信息可以关注“Python中文社区”微信公众号

相关文章
|
21小时前
|
数据处理 UED 开发者
Python并发编程之协程与多线程对比分析
本文将从Python并发编程的角度出发,对比分析协程与多线程两种并发处理方式的优缺点及适用场景,帮助读者更好地选择适合自己项目的并发方案。
|
22小时前
|
程序员 测试技术 数据处理
Python中的装饰器应用与实现Python并发编程之协程与多线程对比分析
在Python编程中,装饰器是一种强大的工具,能够简洁而优雅地扩展函数或类的功能。本文将深入探讨Python中装饰器的原理、应用场景以及实现方法,帮助读者更好地理解和运用这一重要的编程概念。 本文将从Python并发编程的角度出发,对比分析协程与多线程两种并发处理方式的优缺点及适用场景,帮助读者更好地选择适合自己项目的并发方案。
|
2天前
|
数据采集 数据处理 开发者
Python爬虫技术在数据收集与分析中的应用
随着互联网信息的爆炸式增长,数据收集与分析变得愈发重要。本文将介绍Python爬虫技术在实际项目中的应用,探讨其在数据收集、清洗和分析过程中的作用,以及如何利用Python相关库提高爬虫效率。
|
2天前
|
缓存 关系型数据库 测试技术
Python中的装饰器应用及实例分析
本文将深入探讨Python中装饰器的概念、作用以及如何应用于函数和类,通过详细的示例代码展示装饰器在Python开发中的实际用途,帮助读者更好地理解和运用这一高级技术。
|
2天前
|
数据采集 存储 数据可视化
微博数据可视化分析:利用Python构建信息图表展示话题热度
微博数据可视化分析:利用Python构建信息图表展示话题热度
|
2天前
|
数据采集 JSON JavaScript
Python爬虫案例:抓取猫眼电影排行榜
python爬取猫眼电影排行榜数据分析,实战。(正则表达式,xpath,beautifulsoup)
34 2
|
3天前
|
程序员 测试技术 Python
Python中的装饰器应用及实例分析
Python的装饰器(Decorator)是一种强大的语法特性,它可以在不改变原始函数代码的情况下,在函数定义或调用时动态地添加额外的功能。本文将深入探讨Python中装饰器的概念和原理,并通过实例分析展示装饰器在不同场景下的应用。
|
3天前
|
数据可视化 数据挖掘 数据处理
使用Python的数据可视化技术提升分析效率
在当今信息爆炸的时代,数据分析已经成为各行各业的重要工作之一。本文将介绍如何利用Python的数据可视化技术,结合常见的数据分析库,快速高效地实现数据分析与可视化,提升分析效率和结果展示效果。
|
13天前
|
机器学习/深度学习 自然语言处理 JavaScript
GEE机器学习——最大熵分类器案例分析(JavaScript和python代码)
GEE机器学习——最大熵分类器案例分析(JavaScript和python代码)
15 0
|
14天前
|
API Python
gee python:利用核函数对影像进行平滑处理和边缘提取分析
gee python:利用核函数对影像进行平滑处理和边缘提取分析
8 0