Python
爬取淘宝商品数据挖掘分析实战

项目内容

本案例选择>> 商品类目:沙发;

数量:共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格式 这里使用正则表达式进行解析;

代码如下:

爬取淘宝商品数据挖掘分析实战">

二、数据清洗、处理:

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

代码如下:

爬取淘宝商品数据挖掘分析实战">

爬取淘宝商品数据挖掘分析实战">

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

代码如下:

爬取淘宝商品数据挖掘分析实战">

三、数据挖掘与分析:

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

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

爬取淘宝商品数据挖掘分析实战">

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

爬取淘宝商品数据挖掘分析实战">

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

爬取淘宝商品数据挖掘分析实战">

观察 word_count 表中的词语,发现jieba默认的词典 无法满足需求:

有的词语(如
可拆洗、不可拆洗等)却被cut,这里根据需求对词典加入新词(也可以直接在词典dict.txt里面增删,然后载入修改过的dict.txt)

爬取淘宝商品数据挖掘分析实战">

词云可视化:

安装模块 wordcloud:

方法1: pip install wordcloud

方法2: 下载Packages安装:pip install 软件包名称

软件包下载地址:https://www.lfd.uci.edu/~gohlke/pythonlibs/#wordcloud

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

代码如下:

爬取淘宝商品数据挖掘分析实战">

爬取淘宝商品数据挖掘分析实战">

分析结论:

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

2. 从沙发材质看:布艺沙发占比很高,比皮艺沙发多;

3. 从沙发风格看:简约风格最多,北欧风次之,其他风格排名依次是美式、中式、日式、法式 等;

4. 从户型看:小户型占比最高、大小户型次之,大户型最少。

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

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

代码如下:

爬取淘宝商品数据挖掘分析实战">

对表df_word_sum 中的 word 和 w_s_sum 两列数据进行可视化

(本例中取销量排名前30的词语进行绘图)

爬取淘宝商品数据挖掘分析实战">

爬取淘宝商品数据挖掘分析实战">

由图表可知:

1. 组合商品销量最高 ;

2. 从品类看:布艺沙发销量很高,远超过皮艺沙发;

3. 从户型看:小户型沙发销量最高,大小户型次之,大户型销量最少;

4. 从风格看:简约风销量最高,北欧风次之,其他依次是中式、美式、日式等;

5. 可拆洗、转角类沙发销量可观,也是颇受消费者青睐的。

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

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

代码如下:

爬取淘宝商品数据挖掘分析实战">

爬取淘宝商品数据挖掘分析实战">

由图表可知:

1. 商品数量随着价格总体呈现下降阶梯形势,价格越高,在售的商品越少;

2. 低价位商品居多,价格在500-1500之间的商品最多,1500-3000之间的次之,价格1万以上的商品较少;

3. 价格1万元以上的商品,在售商品数量差异不大。

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

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

代码如下:

爬取淘宝商品数据挖掘分析实战">

爬取淘宝商品数据挖掘分析实战">

由图表及数据可知:

1. 销量100以上的商品仅占3.4% ,其中销量100-200之间的商品最多,200-300之间的次之;

2. 销量100-500之间,商品的数量随着销量呈现下降趋势,且趋势陡峭,低销量商品居多;

3. 销量500以上的商品很少。

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

代码如下:

爬取淘宝商品数据挖掘分析实战">

爬取淘宝商品数据挖掘分析实战">

由图表可知:

1. 价格在1331-1680之间的商品平均销量最高,951-1331之间的次之,9684元以上的最低;

2. 总体呈现先增后减的趋势,但最高峰处于相对低价位阶段;

3. 说明广大消费者对购买沙发的需求更多处于低价位阶段,在1680元以上 价位越高 平均销量基本是越少。

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

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

代码如下:

爬取淘宝商品数据挖掘分析实战">

爬取淘宝商品数据挖掘分析实战">

由图表可知:

1. 总体趋势:随着商品价格增多 其销量减少,商品价格对其销量影响很大;

2.
价格500-2500之间的少数商品销量冲的很高,价格2500-5000之间的商品多数销量偏低,少数相对较高,但价格5000以上的商品销量均很低
没有销量突出的商品。

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

代码如下:

爬取淘宝商品数据挖掘分析实战">

爬取淘宝商品数据挖掘分析实战">

由图表可知:

1. 总体趋势:由线性回归拟合线可以看出,商品销售额随着价格增长呈现上升趋势;

2. 多数商品的价格偏低,销售额也偏低;

3.
价格在0-20000的商品只有少数销售额较高,价格2万-6万的商品只有3个销售额较高,价格6-10万的商品有1个销售额很高,而且是最大值。

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

代码如下:

爬取淘宝商品数据挖掘分析实战">

爬取淘宝商品数据挖掘分析实战">

由图表可知:

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

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

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

代码如下:

爬取淘宝商品数据挖掘分析实战">

爬取淘宝商品数据挖掘分析实战">

热力型地图

爬取淘宝商品数据挖掘分析实战">

作者后记

孙方辉  
从事数据分析工作,热爱数据统计与挖掘分析,本文献给学习Python的朋友们,欢迎大佬们的指点!

Python 爬取淘宝商品数据挖掘分析实战的更多相关文章

  1. Python 爬取淘宝商品信息和相应价格

    !只用于学习用途! plt = re.findall(r'\"view_price\"\:\"[\d\.]*\"',html) :获得商品价格和view_pri ...

  2. 利用Python爬虫爬取淘宝商品做数据挖掘分析实战篇,超详细教程

    项目内容 本案例选择>> 商品类目:沙发: 数量:共100页  4400个商品: 筛选条件:天猫.销量从高到低.价格500元以上. 项目目的 1. 对商品标题进行文本分析 词云可视化 2. ...

  3. Selenium+Chrome/phantomJS模拟浏览器爬取淘宝商品信息

    #使用selenium+Carome/phantomJS模拟浏览器爬取淘宝商品信息 # 思路: # 第一步:利用selenium驱动浏览器,搜索商品信息,得到商品列表 # 第二步:分析商品页数,驱动浏 ...

  4. 利用Selenium爬取淘宝商品信息

    一.  Selenium和PhantomJS介绍 Selenium是一个用于Web应用程序测试的工具,Selenium直接运行在浏览器中,就像真正的用户在操作一样.由于这个性质,Selenium也是一 ...

  5. python3编写网络爬虫16-使用selenium 爬取淘宝商品信息

    一.使用selenium 模拟浏览器操作爬取淘宝商品信息 之前我们已经成功尝试分析Ajax来抓取相关数据,但是并不是所有页面都可以通过分析Ajax来完成抓取.比如,淘宝,它的整个页面数据确实也是通过A ...

  6. <day003>登录+爬取淘宝商品信息+字典用json存储

    任务1:利用cookie可以免去登录的烦恼(验证码) ''' 只需要有登录后的cookie,就可以绕过验证码 登录后的cookie可以通过Selenium用第三方(微博)进行登录,不需要进行淘宝的滑动 ...

  7. 爬取淘宝商品信息,放到html页面展示

    爬取淘宝商品信息 import pymysql import requests import re def getHTMLText(url): kv = {'cookie':'thw=cn; hng= ...

  8. python爬虫学习(三):使用re库爬取"淘宝商品",并把结果写进txt文件

    第二个例子是使用requests库+re库爬取淘宝搜索商品页面的商品信息 (1)分析网页源码 打开淘宝,输入关键字“python”,然后搜索,显示如下搜索结果 从url连接中可以得到搜索商品的关键字是 ...

  9. 甜咸粽子党大战,Python爬取淘宝上的粽子数据并进行分析

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 爬虫 爬取淘宝数据,本次采用的方法是:Selenium控制Chrome浏览 ...

随机推荐

  1. CSS样式 换行

    强制不换行 div{ white-space:nowrap; } 自动换行 div{ word-wrap: break-word; word-break: normal; } 强制英文单词断行 div ...

  2. Python webdriver调用Chrome报错

    报错信息如下: selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to b ...

  3. 关于原型链,原来这么简单?—————终结__proto__和prototype的那些事

    今天,一个技术群里小朋友提出一个问题: Object.prototype.a = function () { console.log('a') } Function.prototype.b = fun ...

  4. ThinkPHP中的display()和fetch()的区别

    fetch()传入的参数是模板名,用模板文件来输出; display()传入的是字符串,输出传递的内容.

  5. 计算机编号、硬盘序列号和Mac地址查询方法

    (1)计算机编号: SN也就是Serial Number的缩写,中文也就是产品序列号,而电脑的后面一般也有一个这样的SN序列号,那么怎么查看电脑的S/N序列号呢? 方法一: 将笔记本电脑翻过来,然后在 ...

  6. 001-supervisor

    supervisor 使用教程(转) 原文地址:https://word.gw1770df.cc/2016-08-04/linux/supervisor-%E4%BD%BF%E7%94%A8%E6%9 ...

  7. Linux服务器安装系统之1-LSI阵列卡Raid10配置方法

  8. hdu 4638 Group(离线+树状数组)

    Group Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Subm ...

  9. LAMP架构编译安装过程详解

    linux Git 安装 1.安装git依赖包 . yum install -y perl-ExtUtils-MakeMaker package . yum install -y tcl build- ...

  10. git概述(三)

    Bug分支: 当你接到一个修复一个代号101的bug的任务时,很自然地,你想创建一个分支issue-101来修复它,但是,等等,当前正在dev上进行的工作还没有提交: 并不是你不想提交,而是工作只进行 ...