最好吃的月饼!用Python爬取了某宝1166家月饼进行可视化分析!

4d339a37addcc09b12187f51cd10b238.png

在有几天就是中秋节了,不知道大家有没有选择困难症,面对琳琅满目的商品,不知道挑哪款月饼送长辈最好。

不过好在会Python,将淘宝上的月饼商品都爬取了下来,并进行可视化分析,从而你看看哪款月饼是最合适的。

01

数据采集

数据采集是数据可视化分析的第一步,也是最基础的一步,数据采集的数量和质量越高,后面分析的准确的也就越高,我们来看一下淘宝网的数据该如何爬取。

淘宝网站是一个动态加载的网站,我们之前可以采用解析接口或者用Selenium自动化测试工具来爬取数据,但是现在淘宝对接口进行了加密,使我们很难分析出来其中的规律,同时淘宝也对Selenium进行了反爬限制,所以我们要换种思路来进行数据获取。

打开开发者模式,开始对网页进行观察后发现,淘宝商品的数据竟然在源网页中以注释的方式存储着。

4e7f459cecf42eb9ac5c24f1b6e4d615.png

已经发现了数据存储的位置和方式,那我们可以直接构建爬虫了,部分代码如下:

import requests
import re
import openpyxlresponse = requests.get(url, headers=headers, params=params)for i in range(44): try:
     if (fukuanrenshu[i] == '1.5万+'):
         f = 15000
     elif (fukuanrenshu[i] == '1.0万+'):
         f = 10000
     elif ('+'in fukuanrenshu[i]):
         f = re.findall('\d+', fukuanrenshu[i])
     else:
         f = fukuanrenshu[i]
     if float(jiage[i]) > 10:
         sheet.append([dianpumingcheng[i], shangpinming[i], float(jiage[i]), fahuodi[i], f])

02

数据清洗

数据采集后,要对其进行清洗,剔除脏数据,有助于提高分析的准确性。

01

 导入商品数据

用pandas读取爬取后的商品数据并预览。

import pandas as pd
df = pd.read_excel('月饼.xlsx',names=['店铺名称','商品名','价格','产地','付款人数'])
print(df.head())

3811064479a5e7e7fd1898b9a0d14735.png

02

 删除重复数据

df.drop_duplicates()

03

 查看数据类型

查看字段类型和缺失值情况,符合分析需要,无需另做处理。

df.info()

bdb1625b41a46683b64af0ecb7370e2b.png

03

可视化分析

我们来对这1166家月饼商品数据进行可视化分析。可视化图是由Python、Tableau和Excel共同绘制而来。

01

 在售月饼的特点

通过对月饼的商品名称进行词云图绘制,发现蛋黄、广式、五仁、莲蓉、豆沙味的月饼售卖较多,同时淘宝上售卖的月饼大多是用来给人们送礼的。

13dc299dfa6fbc8819c3d70078360057.png

制作代码如下:

from imageio import imread
import jieba
from wordcloud import WordCloud, STOPWORDS

with open("1.txt",'r',encoding='utf-8') as f:
  job_title_1 = f.read()
contents_cut_job_title = jieba.cut(job_title_1)
contents_list_job_title = " ".join(contents_cut_job_title)
wc = WordCloud(stopwords=STOPWORDS.add("一个"), collocations=False,
             background_color="white",
             font_path=r"K:\msyh.ttc",
             width=400, height=300, random_state=42,
             mask=imread('月饼.jpg', pilmode="RGB")
             )
wc.generate(contents_list_job_title)
wc.to_file("推荐语.png")

02

 各省产量分布图

通过对各商品的产地数据进行统计并绘制了全国地图,我们发现广东、浙江和北京这三个地方生产月饼最多,分别是312家、221家和131家。

6215283a65a1ab4819047c9dee50a53e.gif

制作代码如下:

import openpyxl
from collections import Counter
from pyecharts import Map
wb = openpyxl.load_workbook('月饼.xlsx')
sheet = wb['Sheet']
a = []
for i in range(2,1960):
  D = sheet[f'D{i}']
  a.append(D.value)
province_distribution = dict(Counter(a))
provice = list(province_distribution.keys())
values = list(province_distribution.values())
map = Map("中国地图",width=1200, height=600)
map.add("", provice, values, visual_range=[0, 50], maptype='china', is_visualmap=True,
visual_text_color='#000',is_label_show=True)
map.render(path="地图.html")

我们进一步对广东省的产地数据进行分析发现,广州的月饼商家最多,占全省的40%。

ad18dcf57facaeaa7fc4b3323a14ccf7.png

03

 月饼价格区间分布

我们对月饼价格以100为分点,进行可视化后发现,价格在100以内的月饼商品最多,有478家,其次是价格在100-200之间的,有399家。看来月饼的价格还是相对便宜的~

4b3d37c5686d96ec4d46ee187b88dd4a.png

04

 月饼月销量top20商家

我们发现月饼销量top20的商店都是旗舰店,看来大家在网上购买食品类商品时还是喜欢去官方的店铺进行购买。其中稻香村食品店的月饼销量最高,一会去这家看看。

d98f15bc0e523ff25664f86fab8e9b71.png

看完月销量,在来看看月销额。我们发现美心官方旗舰店的月销额很高,但是它的月销量很低,看来它的月饼商品价格略高。

5fde965a0385df54039d1dddc19cffa1.png

05

 入手的月饼

经过以上的分析和对宝贝的评价、好评率等数据进行综合考虑之后,最终选择购买这款月饼来送给长辈。

92408e40495241ad1248b99bb214e421.png

推荐阅读:
入门: 最全的零基础学Python的问题  | 零基础学了8个月的Python  | 实战项目 |学Python就是这条捷径
干货:爬取豆瓣短评,电影《后来的我们》 | 38年NBA最佳球员分析 |   从万众期待到口碑扑街!唐探3令人失望  | 笑看新倚天屠龙记 | 灯谜答题王 |用Python做个海量小姐姐素描图 |碟中谍这么火,我用机器学习做个迷你推荐系统电影
趣味:弹球游戏  | 九宫格  | 漂亮的花 | 两百行Python《天天酷跑》游戏!
AI: 会做诗的机器人 | 给图片上色 | 预测收入 | 碟中谍这么火,我用机器学习做个迷你推荐系统电影
小工具: Pdf转Word,轻松搞定表格和水印! | 一键把html网页保存为pdf!|  再见PDF提取收费! | 用90行代码打造最强PDF转换器,word、PPT、excel、markdown、html一键转换 | 制作一款钉钉低价机票提示器! |60行代码做了一个语音壁纸切换器天天看小姐姐!|

年度爆款文案

 
 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
点阅读原文,领AI全套资料
  • 15
    点赞
  • 58
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值