3

用Python爬取分析【某东618】畅销商品销量数据,带你看看大家都喜欢买什么!

 2 years ago
source link: https://my.oschina.net/u/4638454/blog/5082623
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

618购物节,辰哥准备分析一波购物节大家都喜欢买什么?本文以某东为例,Python爬取618活动的畅销商品数据,并进行数据清洗,最后以可视化的方式从不同角度去了解畅销商品中,名列前茅的商品是哪些?销售数据如何?用户好评如何?等等

本文结构如下

1、爬取某东畅销商品数据

2、清洗数据并并进行简单分析

3、将数据进行可视化展示

数据的字段如下:

一共爬取了243条某东畅销商品数据

01、获取数据

1.   分析网页

在编写代码之前,先来分析一波网页。

上面是某东的畅销商品,通过辰哥分析分析,该网页有异步加载(前面10个商品是静态加载,剩下的是动态异步加载),因此我们需要写了个请求去获取数据。

2.   获取静态网页商品链接

商品的销售、评论等数据在商品详情页,这里先获取商品详情页链接

结果如下:

3.   获取动态网页商品链接

通过抓包可以获取到动态加载链接,并获取到商品标题和商品id(这里的商品id可以用于后面拼接商品详情页链接)

获取json数据后,提取出商品标题商品ID

4. 获取打折、原价、秒杀价

通过商品ID可以获取到商品打折、原价、秒杀价(这里有接口,接口是通过抓包获取的,感兴趣的可以去自己去尝试,不明白的可以直接使用)

这里将该功能封装成函数,通过传入商品ID就可以获取该商品的商品打折、原价、秒杀价

结果如下:

5. 获取评论数、好评数、中评数、差评数、好评率

通过商品ID可以获取到评论数、好评数、中评数、差评数、好评率(同样这里有接口,接口是通过抓包获取的,感兴趣的可以去自己去尝试,不明白的可以直接使用)

结果如下:

6.   保存到excel

接着开始遍历商品,并通过ID去获取商品的销售情况(步骤4和步骤5的函数),最后把数据保存到execl

定义表头

写入数据

其中的get_price和CommentCount是步骤4和步骤5的函数。count是excel中行数,因此在循环中count+1,依次写入下一行。

最终保存结果

一共爬取了243条某东畅销商品数据

02、数据分析&可视化

1.数据清洗

需要清洗的内容,主要有图中这三列(标题、打折、好评数)。

清洗目标

  1. 标题过长(长度控制在10内),不方便后面的画图

  2. 打折字段中含有折字,在进行排序时不能直接转数值型。

  3. 好评数中的,转为具体数值,如1.2万转为12000

清洗结果:

2.可视化-商品打折力度

从清洗后数据中取出:商品名称和打折这两列,进行【排序】从打折最大到打折最小。最后取出前15名进行可视化

核心代码****如下:

可视化效果

3.可视化-好评率统计

从数据中取出:好评率这列,对不同的好评率进行统计,如好评率是100%(1)的商品多少件,好评率99%(0.99)的商品多少件等。

核心代码****如下:

可视化效果

3.可视化-畅销商品销量排行

从数据中取出:商品名称和评论数这两列,这里根据评论数去作为销售依据,对商品的销量进行排序(高到低),并取出前15名进行可视化。

核心代码****如下:

可视化效果

4.可视化-畅销商品前15名原价与秒杀价对比

在上面的分析中可以知道畅销商品的销量前15名,这里将这15件商品的原价和秒杀价进行可视化对比。

核心代码****如下:

可视化效果

03、小结

本文以某东为例,Python爬取618活动的畅销商品数据,并进行数据清洗,最后以可视化的方式从不同角度去了解畅销商品中,名列前茅的商品是哪些?销售数据如何?用户好评如何?等等

不明白的地方可以在下方留言,一起交流。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK