用 Python 爬取 4332 条数据,揭秘甜咸肉粽的江湖!

本文通过数据抓取和可视化,分析了淘宝上粽子的价格、销量分布以及最受欢迎的口味,展示了用Pyecharts进行数据可视化的过程,包括扇形图、价格区间图和地图。同时提及了Python学习资源,提供了一个全面的前端开发学习体系。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

顺便做个排序,看看什么粽子最贵!

df1 = df.sort_values(by=“价格”, axis=0, ascending=False)

df1.iloc[:5,:]

在这里插入图片描述

前三名都来自御茶膳房旗舰店,让我们看看1780元的粽子长啥样吧!

在这里插入图片描述

数据可视化


本文我们打算用pyecharts进行可视化展示。有同学可能使用的是老版本(0.5X),Pyecharts的1.x版本与老版本(0.5X)不兼容,如果无法导入可能是这个问题哈。

可视化所有语句均基于v1.7.1,通过以下语句可查询你的pyecharts版本:

import pyecharts

print(pyecharts.version)

扇形图

最贵的粽子1780元看来是吃不起了,那大家都买什么价位的呢?

先按照淘宝推荐的区间划分一下:

def price_range(x): #按照淘宝推荐划分价格区间

if x <= 22:

return ‘22元以下’

elif x <= 115:

return ‘22-115元’

elif x <= 633:

return ‘115-633元’

else:

return ‘633元以上’

再使用pyecharts来生成不同价格区间的粽子销量占比图。

在这里插入图片描述

看来百元以内的粽子(礼盒装)才是大家的正常承受范围,不过我还是选择小区门口的5块钱3个。

词云图

我们用jieba对爬取得到的商品名称分词,生成词云。

from pyecharts.charts import WordCloud

from pyecharts.globals import SymbolType

词云图

word1 = WordCloud(init_opts=opts.InitOpts(width=‘1350px’, height=‘750px’))

word1.add(“”, [*zip(key_words.words, key_words.num)],

word_size_range=[20, 200],

shape=SymbolType.DIAMOND)

word1.set_global_opts(title_opts=opts.TitleOpts(‘粽子商品名称词云图’),

toolbox_opts=opts.ToolboxOpts())

word1.render(“粽子商品名称词云图.html”)

在这里插入图片描述

硕大的粽子周围环绕着几个突出的关键词:礼盒装、鲜肉、蛋黄、嘉兴、豆沙、端午节。除去端午节相关的词汇,我们通过关键词大小似乎就知道几种口味的受欢迎情况。

查阅资料对比一下,还真是大体一致。

心疼我枣粽。

至于嘉兴这个地名,我们后文会继续提到。

在这里插入图片描述

条形图

上文我们查到了最贵的粽子,那么销量最好的粽子/店铺是什么呢?

安排

在这里插入图片描述

五芳斋共4款入围,其中一款礼盒装达到了100万+的销量,应该比这个还多(参见微信的10w+)。真真老老紧随其后,3款粽子进入TOP10。其余的品牌还有稻香村和知味观,额,第九名是卖粽叶的,看来自己包粽子的需求也是蛮大的嘛。

在这里插入图片描述

粽子店铺销量Top10其实与商品相似,五芳斋官方旗舰店和真真老老旗舰店占据首位,遥遥领先。

经过查阅,五芳斋,真真老老,都为嘉兴的粽子两大品牌,那难怪嘉兴在词云图里那么突出。嘉兴属于浙江省,销量冠亚军都在这里,那浙江岂不是占比很大。

还真是这样:

地图

继续使用pyecharts来生成各省份粽子销量分布图[2]

from pyecharts.charts import Map

计算销量

province_num = df.groupby(‘省份’)[‘销量’].sum().sort_values(ascending=False)

绘制地图

map1 = Map(init_opts=opts.InitOpts(width=‘1350px’, height=‘750px’))

map1.add(“”, [list(z) for z in zip(province_num.index.tolist(), province_num.values.tolist())],

maptype=‘china’

)

map1.set_global_opts(title_opts=opts.TitleOpts(title=‘各省份粽子销量分布’),

visualmap_opts=opts.VisualMapOpts(max_=300000),

toolbox_opts=opts.ToolboxOpts()

)

map1.render(“各省份粽子销量分布.html”)

在这里插入图片描述

这个销量占比差异真的是太大了。

可以说中国粽子看浙江,浙江粽子看嘉兴[3](通过计算发货地址为浙江的粽子销量占比70.6%,而嘉兴占浙江的87.4%)

淘宝粽子代码


from selenium import webdriver

import time

import csv

import re

搜索商品,获取商品页码

def search_product(key_word):

定位输入框

browser.find_element_by_id(“q”).send_keys(key_word)

定义点击按钮,并点击

browser.find_element_by_class_name(‘btn-search’).click()

最大化窗口:为了方便我们扫码

browser.maximize_window()

等待15秒,给足时间我们扫码

time.sleep(15)

定位这个“页码”,获取“共100页这个文本”

page_info = browser.find_element_by_xpath(‘//div[@class=“total”]’).text

需要注意的是:findall()返回的是一个列表,虽然此时只有一个元素它也是一个列表。

page = re.findall(“(\d+)”,page_info)[0]

return page

获取数据

def get_data():

通过页面分析发现:所有的信息都在items节点下

items = browser.find_elements_by_xpath(‘//div[@class=“items”]/div[@class="item J_MouserOnverReq "]’)

for item in items:

参数信息

pro_desc = item.find_element_by_xpath(‘.//div[@class=“row row-2 title”]/a’).text

价格

pro_price = item.find_element_by_xpath(‘.//strong’).text

付款人数

buy_num = item.find_element_by_xpath(‘.//div[@class=“deal-cnt”]’).text

旗舰店

shop = item.find_element_by_xpath(‘.//div[@class=“shop”]/a’).text

发货地

address = item.find_element_by_xpath(‘.//div[@class=“location”]’).text

#print(pro_desc, pro_price, buy_num, shop, address)

with open(‘{}.csv’.format(key_word), mode=‘a’, newline=‘’, encoding=‘utf-8-sig’) as f:

csv_writer = csv.writer(f, delimiter=‘,’)

csv_writer.writerow([pro_desc, pro_price, buy_num, shop, address])

def main():

browser.get(‘https://www.taobao.com/’)

page = search_product(key_word)

print(page)

get_data()

page_num = 1

while int(page) != page_num:

print(“*” * 100)
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

img

img

img

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注Python)

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注Python)

img
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值