简介

双十一刚过,TB的销售额又创下了新高,我也为2000+亿做出了贡献
恰巧买了一袋德运奶粉,味道还不错。我就在想,接触爬虫也有两个多月了,还没有爬过TB这种经典的网站,借着劲头就爬取了一下TB上奶粉的销售信息

爬虫

在淘宝框搜索奶粉,就会弹出各式各样的奶粉

可以爬取的有用信息:价格、销售量、商品名称、店铺、地址
淘宝是一个典型用json格式存储信息的网址,通俗讲,json格式就是一层套一层的字典,像淘宝这样一个网页中有很多商品的网页,源码看起来可能会很复杂,但都是有规律可循,需要仔细观察


通过分析,可以看出所有的商品信息都存储在开头为g_page_config = 结尾为shopcardOff":true}};的一个字典中,只需要获取这个字典然后用python中的json库进行解析即可

response = requests.get(urls,headers = headers)
response.encoding = 'utf-8'
html = response.text
#print(html)
start = html.find('g_page_config = ')+len('g_page_config = ')
end = html.find('"shopcardOff":true}')+len('"shopcardOff":true}')
js = json.loads(html[start:end+1])
# goods = re.search(r'g_page_config = (.*?)}};', response.text)
# print(goods)
# js = json.loads(str(goods))

这里列举了两种获取方式,一是用find方法,二是用正则匹配,都能成功获取网页信息
解析网页过后,就可以从获取到的信息中提取有用信息,通过分析可得知有用信息都存储在很多层嵌套的字典中,所以通过遍历这个字典提取出信息

for i in js['mods']['itemlist']['data']['auctions']:#产品名称title = i['raw_title']#产品价格price = i['view_price']#地区location = i['item_loc'].split()[0]#销售量sales = i['view_sales'].replace('人收货','')#评价人数people  = i['comment_count']#店铺类型store = i['nick']

为了便于数据分析,所以在提取信息时,将地区和销售量做了处理,例浙江 杭州浙江500人收货500

数据处理

爬取数据结果如下

一共有2924条数据,其实是远远少于100页中商品数量
在进行数据处理前,必须先要确定所有数据的字段是否完整

只有评价人数这个字段缺少一个数据,填充数据或者删去都不会对数据集整体产生很大影响
在观察数据时,可能在写入csv文件时语句不规范,出现了下图问题

列索引多次出现在数据集中,所以必须要删去,只需要将数据集中不包含产品名称字样的样本保留即可

data1 = data[~data['产品名称'].isin(['产品名称'])]

数据集中6个特征都为object类型,所以为了进行数据可视化,需要对数据进行强制转换
价格和评价人数数据比较规范,直接用astype进行转化即可

data1['价格'] = data1['价格'].astype(float)
data1['评价人数'] = data1['评价人数'].astype(int)

但是销售量这一样本中还有其他字符存在,可以编写一个函数处理数据

def price(e):if '万+' in e:num1 = re.findall('(.*?)万+',e)return float(num1[0])*10000elif '+' in e:return e.replace('+','')else:return float(e)
data1['商品销售量'] = data1['销售量'].apply(price)

同时可以通过数据字符串中特有的字符,将奶粉和店铺进行分类
奶粉大致可分为:全脂奶粉、低脂奶粉、脱脂奶粉、婴幼儿奶粉、高钙奶粉、未知
店铺大致可分为:天猫超市、旗舰店、专营店、海外类型店铺、其他店铺
已知商品价格和销售量后,也可以算出该商品的销售额

data1['销售额'] = data1['价格']*data1['商品销售量']

处理后的数据如下

在对处理后数据大致浏览时,出现了评价人数为0的情况

评价人数为0并不能判断这个数据是否对错,但是销售量8500的商品评价为0,就显着不符合常理,为了确定判断,找到了该商品,评价人数有33w+,显然这些是错误数据

list = data1[data1['评价人数']<1].index.tolist()
data1.drop([24, 138, 388, 1418, 2484],inplace = True)

drop函数直接将这几行数据删去,下面进行数据可视化

数据可视化

1.类型


奶粉的类型,相对来说还是婴儿奶粉比较多,由于对产品名称提取特征不够细化,所以未知也比较多,达到了800+;店铺类型则是其他店铺占比最多,普通奶粉可依据价格挑选,但是婴儿奶粉一定要依据质量挑选才可,尽可能在旗舰店这样比较可靠的店铺购买

2.店铺地址分布


店铺地址仍然是江浙沪、广东占据大比例,可能不止奶粉,许多其他商品的网店、配货仓库都集中分布在这些地区;众所周知,澳大利亚的奶粉是及其出名的,所以也占一定比例

3.价格


婴儿奶粉的价格品牌是非常多的,所以价格分布也较广泛,有的甚至达到了2000+,看来养孩子真的是不容易;相比脱脂、低脂奶粉,全脂奶粉反而价格更高,有点出乎意料,多了工序价格却还低了?当然品牌造成的影响也不可否认;高钙奶粉价格相对来说中规中矩,贵一点的也不过500左右

4.销售额前50分布


这份数据中奶粉销售额最高的可以达到1100w+,所以在网店中,奶粉的市场还是不小的

销售额TOP50份样本,43.3%的店铺都为天猫超市,旗舰店也占有22.8%,所以可见大部分人买奶粉还是会到比较可靠的网店购买的;奶粉类型还是未知占据最多,其次婴幼儿奶粉占比28.8%,而低脂奶粉和脱脂奶粉总占比6.7%,这两类奶粉会对健身人士、老年人及消化不良的婴儿的人有些益处,所以销售额也会相对较低

Python实现淘宝爬取——奶粉销售信息爬取及其数据可视化相关推荐

  1. python爬虫淘宝视频_Python2爬虫:以抓取淘宝MM为例(实战)

    本篇目标 1.抓取淘宝MM的姓名,头像,年龄 2.抓取每一个MM的资料简介以及写真图片 3.把每一个MM的写真图片按照文件夹保存到本地 4.熟悉文件保存的过程 1.URL的格式 在这里我们用到的URL ...

  2. (三)爬取新房销售信息——位置坐标转换+地图标点可视化篇

    在上一次用pandas做数据分析.matplotlib实现可视化的任务中,主要对于"价格"信息做了简单的处理,了解到赣州地区房价水平的范围,各区县的房价水平,根据自己的预算大致可以 ...

  3. python爬虫淘宝实例-Python——爬虫实战 爬取淘宝店铺内所有宝贝图片

    之前用四篇很啰嗦的入门级别的文章,带着大家一起去了解并学习在编写爬虫的过程中,最基本的几个库的用法. 那么今天,我们就正式开始我们的第一篇实战内容,爬取一整个淘宝店铺里的所有宝贝的详情页,并且把详情页 ...

  4. python模拟淘宝登陆_【Python】selenium模拟淘宝登录

    # -*- coding: utf-8 -*- from selenium import webdriver from selenium.webdriver.common.by import By f ...

  5. 利用python从网页查找数据_利用Python模拟淘宝的搜索过程并对数据进行可视化分析...

    数据挖掘入门与实战 公众号: datadw 本文讲述如何利用Python模拟淘宝的搜索过程并对搜索结果进行初步的数据可视化分析. 搜索过程的模拟:淘宝的搜索页面有两种形式, 一种形式是, 2019/2 ...

  6. 我用Python分析淘宝低价人群和匿名人群的连衣裙数据后,发现了这些秘密!

    1.我是一个低价人群用户 小伙伴们都在秀自己的淘宝连衣裙搜索价格,相较于小伙伴们搜索出的数百.数千的搜索"连衣裙"结果价格,很显然,我低价人群无疑了.以下是州的先生在淘宝上搜索&q ...

  7. Python爬取影评并进行情感分析和数据可视化

    Python爬取影评并进行情感分析和数据可视化 文章目录 Python爬取影评并进行情感分析和数据可视化 一.引言 二.使用requests+BeautifulSoup进行影评的爬取 1.分析界面元素 ...

  8. 用python实现淘宝毫秒级秒!! 天猫淘宝的抢购完美实现 而且说实话有很多人需要它。 每次在抢购前的无法提交订单导致很多买家无法购买。 今天我教给大家如何更好快速实现你的购买愿望! 教程如下!请仔

    用python实现淘宝毫秒级秒!! 天猫淘宝的抢购完美实现 而且说实话有很多人需要它. 每次在抢购前的无法提交订单导致很多买家无法购买. 今天我教给大家如何更好快速实现你的购买愿望! 教程如下!请仔细 ...

  9. 如何秒下单?python的淘宝秒杀抢购下单源码参考

    如何秒下单?python的淘宝秒杀抢购下单源码参考 疫情如期,隔离还在继续,何时工作是一个头大的问题,最近在看口罩,不少电商平台都有放出口罩,当然,手残党将会也会是一直难以下手,你可能很难抢得到,故找 ...

最新文章

  1. 周炯槃 信息理论基础
  2. JAVA中使用FTPClient实现文件上传下载
  3. kafka高性能揭秘:顺序写和零拷贝
  4. Android Studio更新成2.3以后Gradle大坑拯救,gradle安装异常解决办法
  5. 第38天:运算符、字符串对象常用方法
  6. 3c vrrp的接口监视_主备冗余协议,VRRP基础,状态机选举及VRRP配置,理论+实战...
  7. intellij Find Usage 查找符号使用快捷键alt + f7在ubuntu下无法使用的解决方法
  8. ssm指的是什么_什么是RESTful?RESTfule风格又是啥?
  9. quartz集群重复调度的解决
  10. 用pcl读ply文件_一分钟详解PCL中点云配准技术
  11. Oracle中OEM的启动与关闭
  12. C#事件-什么是事件
  13. 微观角度上,宇宙膨胀的影响是什么?
  14. 石英晶振封装HC-49S HC-49U HC-49SMD(12mhz 11.0592mhz等)的关系与区别
  15. 小程序积分商城如何实现营销目的
  16. html caption属性的值,如何设置caption属性
  17. Hdu--5064(DP)
  18. 微信注册页面html实现,微信注册.html
  19. ggplot2如何在R语言中绘制表格
  20. 美国音乐学院计算机音乐专业排名2015年,美国音乐学校排名Top100

热门文章

  1. Tiny语言编译器简单介绍
  2. python基础教程 学习前的准备
  3. 国家市场监督管理总局公布《国家标准管理办法》
  4. 关于json对象的使用小结!
  5. crh寄存器_STM32的GPIO的寄存器介绍和设置
  6. C51汇编语言寻址方式,80C51单片机指令系统的7种寻址方式
  7. 我们都是代码接盘侠,请做一位好前任!
  8. 计算机终端通讯380023,华为发布首款5G手机Mate20X,通讯服务商标注册属于第几类?...
  9. 微信小程序页面跳转后不显示内容
  10. 刚打印完色3D模型不能完成取下来