使用Python爬了4400条淘宝商品数据,竟发现了这些“潜规则”


Posted in Python onMarch 23, 2018

本文记录了笔者用 Python 爬取淘宝某商品的全过程,并对商品数据进行了挖掘与分析,最终得出结论。

项目内容

使用Python爬了4400条淘宝商品数据,竟发现了这些“潜规则”

本案例选择>> 商品类目:沙发;
数量:共100页  4400个商品;
筛选条件:天猫、销量从高到低、价格500元以上。

项目目的

1. 对商品标题进行文本分析 词云可视化
2. 不同关键词word对应的sales的统计分析
3. 商品的价格分布情况分析
4. 商品的销量分布情况分析
5. 不同价格区间的商品的平均销量分布
6. 商品价格对销量的影响分析
7. 商品价格对销售额的影响分析
8. 不同省份或城市的商品数量分布
9.不同省份的商品平均销量分布

注:本项目仅以以上几项分析为例。

项目步骤

1. 数据采集:Python爬取淘宝网商品数据
2. 对数据进行清洗和处理
3. 文本分析:jieba分词、wordcloud可视化
4. 数据柱形图可视化 barh
5. 数据直方图可视化 hist
6. 数据散点图可视化 scatter
7. 数据回归分析可视化 regplot

工具&模块:

工具:本案例代码编辑工具 Anaconda的Spyder
模块:requests、retrying、missingno、jieba、matplotlib、wordcloud、imread、seaborn 等。

一、爬取数据

因淘宝网是反爬虫的,虽然使用多线程、修改headers参数,但仍然不能保证每次100%爬取,所以 我增加了循环爬取,每次循环爬取未爬取成功的页 直至所有页爬取成功停止。
说明:淘宝商品页为JSON格式 这里使用正则表达式进行解析;

代码如下:

使用Python爬了4400条淘宝商品数据,竟发现了这些“潜规则”

二、数据清洗、处理:

(此步骤也可以在Excel中完成 再读入数据)

代码如下:

使用Python爬了4400条淘宝商品数据,竟发现了这些“潜规则”

使用Python爬了4400条淘宝商品数据,竟发现了这些“潜规则”

说明:根据需求,本案例中只取了 item_loc, raw_title, view_price, view_sales 这4列数据,主要对 标题、区域、价格、销量 进行分析。

代码如下:

使用Python爬了4400条淘宝商品数据,竟发现了这些“潜规则”

三、数据挖掘与分析:

【1】. 对 raw_title 列标题进行文本分析:

使用结巴分词器,安装模块pip install jieba

使用Python爬了4400条淘宝商品数据,竟发现了这些“潜规则”

对 title_s(list of list 格式)中的每个list的元素(str)进行过滤 剔除不需要的词语,即 把停用词表stopwords中有的词语都剔除掉:

使用Python爬了4400条淘宝商品数据,竟发现了这些“潜规则”

因为下面要统计每个词语的个数,所以 为了准确性 这里对过滤后的数据 title_clean 中的每个list的元素进行去重,即 每个标题被分割后的词语唯一。

使用Python爬了4400条淘宝商品数据,竟发现了这些“潜规则”

观察 word_count 表中的词语,发现jieba默认的词典 无法满足需求:
有的词语(如 可拆洗、不可拆洗等)却被cut,这里根据需求对词典加入新词(也可以直接在词典dict.txt里面增删,然后载入修改过的dict.txt)

使用Python爬了4400条淘宝商品数据,竟发现了这些“潜规则”

词云可视化:

安装模块 wordcloud:
方法1: pip install wordcloud
方法2: 下载Packages安装:pip install 软件包名称
软件包下载地址:https://www.lfd.uci.edu/~gohlke/pythonlibs/#wordcloud

注意:要把下载的软件包放在Python安装路径下。

代码如下:

使用Python爬了4400条淘宝商品数据,竟发现了这些“潜规则”

使用Python爬了4400条淘宝商品数据,竟发现了这些“潜规则”

分析结论:

1. 组合、整装商品占比很高;

2. 从沙发材质看:布艺沙发占比很高,比皮艺沙发多;
3. 从沙发风格看:简约风格最多,北欧风次之,其他风格排名依次是美式、中式、日式、法式 等;
4. 从户型看:小户型占比最高、大小户型次之,大户型最少。

【2】. 不同关键词word对应的sales之和的统计分析:

(说明:例如 词语 ‘简约',则统计商品标题中含有‘简约'一词的商品的销量之和,即求出具有‘简约'风格的商品销量之和)

代码如下:

使用Python爬了4400条淘宝商品数据,竟发现了这些“潜规则”

对表df_word_sum 中的 word 和 w_s_sum 两列数据进行可视化
(本例中取销量排名前30的词语进行绘图)

使用Python爬了4400条淘宝商品数据,竟发现了这些“潜规则”

使用Python爬了4400条淘宝商品数据,竟发现了这些“潜规则”

由图表可知:

1. 组合商品销量最高 ;

2. 从品类看:布艺沙发销量很高,远超过皮艺沙发;
3. 从户型看:小户型沙发销量最高,大小户型次之,大户型销量最少;
4. 从风格看:简约风销量最高,北欧风次之,其他依次是中式、美式、日式等;
5. 可拆洗、转角类沙发销量可观,也是颇受消费者青睐的。

【3】. 商品的价格分布情况分析:

分析发现,有一些值太大,为了使可视化效果更加直观,这里我们结合自身产品情况,选择价格小于20000的商品。

代码如下:

使用Python爬了4400条淘宝商品数据,竟发现了这些“潜规则”

使用Python爬了4400条淘宝商品数据,竟发现了这些“潜规则”

由图表可知:

1. 商品数量随着价格总体呈现下降阶梯形势,价格越高,在售的商品越少;
2. 低价位商品居多,价格在500-1500之间的商品最多,1500-3000之间的次之,价格1万以上的商品较少;
3. 价格1万元以上的商品,在售商品数量差异不大。

【4】. 商品的销量分布情况分析: 

使用Python爬了4400条淘宝商品数据,竟发现了这些“潜规则”

使用Python爬了4400条淘宝商品数据,竟发现了这些“潜规则”

同样,为了使可视化效果更加直观,这里我们选择销量大于100的商品。

代码如下:

由图表及数据可知:

1. 销量100以上的商品仅占3.4% ,其中销量100-200之间的商品最多,200-300之间的次之;
2. 销量100-500之间,商品的数量随着销量呈现下降趋势,且趋势陡峭,低销量商品居多;
3. 销量500以上的商品很少。

【5】. 不同价格区间的商品的平均销量分布:

代码如下:

使用Python爬了4400条淘宝商品数据,竟发现了这些“潜规则”

使用Python爬了4400条淘宝商品数据,竟发现了这些“潜规则”

由图表可知:

1. 价格在1331-1680之间的商品平均销量最高,951-1331之间的次之,9684元以上的最低;
2. 总体呈现先增后减的趋势,但最高峰处于相对低价位阶段;
3. 说明广大消费者对购买沙发的需求更多处于低价位阶段,在1680元以上 价位越高 平均销量基本是越少。

【6】. 商品价格对销量的影响分析:

同上,为了使可视化效果更加直观,这里我们结合自身产品情况,选择价格小于20000的商品。

代码如下:

使用Python爬了4400条淘宝商品数据,竟发现了这些“潜规则”

使用Python爬了4400条淘宝商品数据,竟发现了这些“潜规则”

由图表可知:

1. 总体趋势:随着商品价格增多 其销量减少,商品价格对其销量影响很大;
2. 价格500-2500之间的少数商品销量冲的很高,价格2500-5000之间的商品多数销量偏低,少数相对较高,但价格5000以上的商品销量均很低 没有销量突出的商品。

【7】. 商品价格对销售额的影响分析:

代码如下:

使用Python爬了4400条淘宝商品数据,竟发现了这些“潜规则”

由图表可知:

1. 总体趋势:由线性回归拟合线可以看出,商品销售额随着价格增长呈现上升趋势;
2. 多数商品的价格偏低,销售额也偏低;
3. 价格在0-20000的商品只有少数销售额较高,价格2万-6万的商品只有3个销售额较高,价格6-10万的商品有1个销售额很高,而且是最大值。

【8】. 不同省份的商品数量分布:

代码如下:

使用Python爬了4400条淘宝商品数据,竟发现了这些“潜规则”

使用Python爬了4400条淘宝商品数据,竟发现了这些“潜规则”

由图表可知:

1. 广东的最多,上海次之,江苏第三,尤其是广东的数量远超过江苏、浙江、上海等地,说明在沙发这个子类目,广东的店铺占主导地位;

2. 江浙沪等地的数量差异不大,基本相当。

【9】. 不同省份的商品平均销量分布:

代码如下:

使用Python爬了4400条淘宝商品数据,竟发现了这些“潜规则”

使用Python爬了4400条淘宝商品数据,竟发现了这些“潜规则”

热力型地图

使用Python爬了4400条淘宝商品数据,竟发现了这些“潜规则”

总结

以上所述是小编给大家介绍的使用Python爬了4400条淘宝商品数据,竟发现了这些“潜规则”,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
Python单链表的简单实现方法
Sep 23 Python
详解Python的Django框架中的模版继承
Jul 16 Python
python实现多线程的两种方式
May 22 Python
python 环境变量和import模块导入方法(详解)
Jul 11 Python
Flask框架实现给视图函数增加装饰器操作示例
Jul 16 Python
Python读取txt某几列绘图的方法
Oct 14 Python
python如何从文件读取数据及解析
Sep 19 Python
PyTorch的自适应池化Adaptive Pooling实例
Jan 03 Python
Django更新models数据库结构步骤
Apr 01 Python
django form和field具体方法和属性说明
Jul 09 Python
python 实现的车牌识别项目
Jan 25 Python
Python 操作pdf pdfplumber读取PDF写入Exce
Aug 14 Python
python 将字符串转换成字典dict的各种方式总结
Mar 23 #Python
Python自定义线程类简单示例
Mar 23 #Python
python如何实现内容写在图片上
Mar 23 #Python
Python实现的自定义多线程多进程类示例
Mar 23 #Python
python爬取各类文档方法归类汇总
Mar 22 #Python
关于Python正则表达式 findall函数问题详解
Mar 22 #Python
Django自定义过滤器定义与用法示例
Mar 22 #Python
You might like
JAVA/JSP学习系列之六
2006/10/09 PHP
dedecms采集中可以过滤多行代码的正则表达式
2007/03/17 PHP
php 静态页面中显示动态内容
2009/08/14 PHP
如何使用php判断服务器是否是HTTPS连接
2013/07/05 PHP
php获取本周开始日期和结束日期的方法
2015/03/09 PHP
PHP表单数据写入MySQL数据库的代码
2016/05/31 PHP
PHP实现将多个文件压缩成zip格式并下载到本地的方法示例
2018/05/23 PHP
laravel 解决后端无法获取到前端Post过来的值问题
2019/10/22 PHP
PHP实现长轮询消息实时推送功能代码实例讲解
2021/02/26 PHP
jQuery 1.3 和 Validation 验证插件1.5.1
2009/07/09 Javascript
jQuery ajax BUG:object doesn't support this property or method
2010/07/06 Javascript
jquery及原生js获取select下拉框选中的值示例
2013/10/25 Javascript
js实现微信分享代码
2020/10/11 Javascript
浅述节点的创建及常见功能的实现
2016/12/15 Javascript
JS获取子、父、兄节点方法小结
2017/08/14 Javascript
打造通用的匀速运动框架(实例讲解)
2017/10/17 Javascript
关于 angularJS的一些用法
2017/11/29 Javascript
详解vue.js根据不同环境(正式、测试)打包到不同目录
2018/07/13 Javascript
[01:07:19]DOTA2-DPC中国联赛 正赛 CDEC vs XG BO3 第一场 1月19日
2021/03/11 DOTA
Python列出一个文件夹及其子目录的所有文件
2016/06/30 Python
python利用标准库如何获取本地IP示例详解
2017/11/01 Python
Django中针对基于类的视图添加csrf_exempt实例代码
2018/02/11 Python
Python判断变量名是否合法的方法示例
2019/01/28 Python
python利用7z批量解压rar的实现
2019/08/07 Python
解决Django中调用keras的模型出现的问题
2019/08/07 Python
Python3 shutil(高级文件操作模块)实例用法总结
2020/02/19 Python
python使用pyecharts库画地图数据可视化的实现
2020/03/25 Python
python对输出的奇数偶数排序实例代码
2020/12/04 Python
资深财务管理人员自我评价
2013/09/22 职场文书
环境工程大学生自荐信
2013/10/21 职场文书
大专应届毕业生求职信
2014/07/15 职场文书
劳动仲裁代理词范文
2015/05/25 职场文书
行政处罚事先告知书
2015/07/01 职场文书
2016年优秀党务工作者先进事迹材料
2016/02/29 职场文书
Java Dubbo框架知识点梳理
2021/06/26 Java/Android
解决MultipartFile.transferTo(dest) 报FileNotFoundExcep的问题
2021/07/01 Java/Android