用Python爬取分析【某东618】畅销商品销量数据,带你看看大家都喜欢买什么!
618购物节,辰哥准备分析一波购物节大家都喜欢买什么?本文以某东为例,Python**爬取**618活动的畅销商品数据,并进行**数据清洗**,最后以**可视化**的方式从不同角度去了解畅销商品中,名列前茅的商品是哪些?销售数据如何?用户好评如何?等等
**本文结构如下**:
1、爬取某东畅销商品数据
2、清洗数据并并进行简单分析
3、将数据进行可视化展示
**数据的字段如下:**
![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/53cfd94a3aa541148e1612897026fbdc~tplv-k3u1fbpfcp-zoom-1.image)
一共爬取了**243条某东畅销**商品数据
# 01、获取数据
**1. 分析网页**
在编写代码之前,先来分析一波网页。
![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/1bddab6d777842c4a67837bf480a0ef1~tplv-k3u1fbpfcp-zoom-1.image)
上面是某东的**畅销商品**,通过辰哥分析分析,该网页有异步加载(前面10个商品是**静态加载**,剩下的是动**态异步加载**),因此我们需要写了个请求去获取数据。
**2. 获取静态网页商品链接**
商品的销售、评论等数据在商品详情页,这里先获取商品详情页链接
![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/1126f0df7af44c2b92b406956bed59e2~tplv-k3u1fbpfcp-zoom-1.image)
结果如下:
![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/ca004a4cf00a4fe2bdfd5deec1c183c3~tplv-k3u1fbpfcp-zoom-1.image)
**3. 获取动态网页商品链接**
通过抓包可以获取到动态加载链接,并获取到商品标题和商品id(这里的商品id可以用于后面拼接商品详情页链接)
![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/0c83b4953a134943afcde8cf4a3c4b63~tplv-k3u1fbpfcp-zoom-1.image)
![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/5ba006cbe9884ffdbc1dfafbe017032f~tplv-k3u1fbpfcp-zoom-1.image)
获取json数据后,提取出**商品标题**和**商品ID**
![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/e428800196464f9f818f0a1242b5a9d3~tplv-k3u1fbpfcp-zoom-1.image)
**4.** **获取打折、原价、秒杀价**
通过商品ID可以获取到**商品打折、原价、秒杀价**(这里有接口,接口是通过抓包获取的,感兴趣的可以去自己去尝试,不明白的可以直接使用)
![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/bdccfbefd6784826beefbedbc2991d90~tplv-k3u1fbpfcp-zoom-1.image)
这里将该功能封装成函数,通过传入商品ID就可以获取该商品的**商品打折、原价、秒杀价**
结果如下:
![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/baaf87e3ca6248a9b5a4a5fe1886f1b9~tplv-k3u1fbpfcp-zoom-1.image)
**5.** **获取评论数、好评数、中评数、差评数、好评率**
通过商品ID可以获取到**评论数、好评数、中评数、差评数、好评率**(同样这里有接口,接口是通过抓包获取的,感兴趣的可以去自己去尝试,不明白的可以直接使用)
![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/3fc3936103964b9d857c3c719490cabb~tplv-k3u1fbpfcp-zoom-1.image)
结果如下:
![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/1aa77646b85e415c8208f595821b72ff~tplv-k3u1fbpfcp-zoom-1.image)
**6. 保存到excel**
接着开始遍历商品,并通过ID去获取商品的销售情况(步骤4和步骤5的函数),最后把数据保存到execl
**定义表头**
![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/4517b63017f441ad972736549bf82d28~tplv-k3u1fbpfcp-zoom-1.image)
**写入数据**
![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/bd089fe6de4d484d8d20d498eb38ace6~tplv-k3u1fbpfcp-zoom-1.image)
其中的get_price和CommentCount是步骤4和步骤5的函数。count是excel中行数,因此在循环中count+1,依次写入下一行。
**最终保存结果**
![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/c49dfa77a38d4e8aa75958378df510b2~tplv-k3u1fbpfcp-zoom-1.image)
一共爬取了**243条某东畅销**商品数据
# 02、数据分析&可视化
**1.数据清洗**
![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/85104977648f4faaac2976d2129f0eed~tplv-k3u1fbpfcp-zoom-1.image)
需要清洗的内容,主要有图中这三列(标题、打折、好评数)。
**清洗目标**:
1. 标题过长(长度控制在10内),不方便后面的画图
2. 打折字段中含有折字,在进行排序时不能直接转数值型。
3. 好评数中的**万**,转为具体数值,如1.2万转为12000
![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/0a1572436d674b73b666e3eb05f3ce1e~tplv-k3u1fbpfcp-zoom-1.image)
**清洗结果:**
![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/c8a36ac81902463c93c5640e25f60ba1~tplv-k3u1fbpfcp-zoom-1.image)
**2.可视化-商品打折力度**
从清洗后数据中取出:**商品名称和打折**这两列,进行【排序】从打折最大到打折最小。最后取出**前15名进行可视化**
**核心代码****如下**:
![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/d9a2caa60a07475bb999333b34c93eab~tplv-k3u1fbpfcp-zoom-1.image)
**可视化效果**:
![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/f04e01781ef4447ba879a15971f2cfda~tplv-k3u1fbpfcp-zoom-1.image)
**3.可视化-好评率统计**
从数据中取出:**好评率**这列,对不同的好评率进行统计,如好评率是100%(1)的商品多少件,好评率99%(0.99)的商品多少件等。
![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/643d0ccda6ea43ffafef675ee572b1fb~tplv-k3u1fbpfcp-zoom-1.image)
**核心代码****如下**:
![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/e497604f2b904fca85efcb4f2ccb22e4~tplv-k3u1fbpfcp-zoom-1.image)
**可视化效果**:
![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/c6773254a2074e62b7cb3083d64cd265~tplv-k3u1fbpfcp-zoom-1.image)
**3.可视化-畅销商品销量排行**
从数据中取出:**商品名称和评论数**这两列,这里根据评论数去作为销售依据,对商品的销量进行排序(高到低),并取出前15名进行可视化。
**核心代码****如下**:
![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/e099a07393c54cbf8848b8ea026ef85b~tplv-k3u1fbpfcp-zoom-1.image)
**可视化效果**:
![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/5d4dea9ecd594361a0127b9a0a9320bd~tplv-k3u1fbpfcp-zoom-1.image)
**4.可视化-畅销商品前15名原价与秒杀价对比**
在上面的分析中可以知道畅销商品的销量前15名,这里将这15件商品的原价和秒杀价进行可视化对比。
**核心代码****如下**:
![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/9fe6342a9a3544228e2fc5673fbab0f7~tplv-k3u1fbpfcp-zoom-1.image)
**可视化效果**:
![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/8ac0bb76e8654f1997a8384aa87c5780~tplv-k3u1fbpfcp-zoom-1.image)
# 03、小结
本文以某东为例,Python**爬取**618活动的畅销商品数据,并进行**数据清洗**,最后以**可视化**的方式从不同角度去了解畅销商品中,名列前茅的商品是哪些?销售数据如何?用户好评如何?等等
不明白的地方可以在**下方留言**,一起交流。