月饼之王花落谁手?全网都在销售它
消息来源:baojiabao.com 作者: 发布时间:2024-04-26
本文经授权转载自恋习Python(ID:sldata2017)
作者|丁彦军
中秋佳节,除了假日团圆,月饼也是头巷尾的话题焦点今年中秋,谁的月饼呼声最高?什么口味的月饼虽受欢迎?
笔者将与你一起爬取淘宝网全网月饼销售数据,再经过数据分析,告诉你今年谁是“月饼之王”。不过在爬取数据与分析数据之前,插播一段月饼历史之情。
月饼的历史
据说早在殷周时期,江浙一带就有一种纪念太师闻仲的边薄心厚的“太师饼”,可以说是月饼的祖宗了。
后来到了北宋,被皇家看上了,在中秋节那天吃,不得不说皇室贵族的宣传力度,果然是一般人的十倍以上,为月饼的传播起了跨世纪的作用。
贵族们一看这玩意火了,得蹭个热点,那给它们取个名字吧,于是想了个大名叫“月团”,小名叫“小饼”,我说你们为啥就不能把这两个名字合并一下?
至于月饼这个名字,是直到南宋时期才第一次出现在书里的。后面大概就是月饼一步一步凭借自己的努力,渐渐站在中秋节身边的励志故事了。
众所周知:传统的中国四大月饼包括,广式月饼,京式月饼,苏式月饼和潮式月饼。现在随着时代的发展,也出现了好多新种类,比如冰皮月饼、海味月饼、冰淇淋月饼等等。
数据获取
笔者就以淘宝网上的月饼为目标,来获取最近全国各地近段时间月饼销售情况。(目标链接:https://s.taobao.com/search?q=月饼)
工具&模块:
工具:Python3.7+Sublime Text
模块:Requests、jieba、matplotlib、wordcloud、imread、pandas、numpy 等。
目的主要是通过对数据的分析,来看看不同关键词word对应的sales的统计、月饼价格以及销量的分布情况、以及不同省份的月饼销量情况。
详情代码如下:
import requests
import re
#下载网页
def get_html_text(url):
try:
res = requests.get(url,timeout=30)
res.raise_for_status()
res.encoding = res.apparent_encoding
returnres.text
except:
return""
#解析网页并保存数据
def parse_page(html):
try:
plt = re.findall(r""view_price":"[d.]*"", html)
tlt = re.findall(r""raw_title":".*?"", html)
loc = re.findall(r""item_loc":".*?"", html)
sale = re.findall(r""view_sales":".*?"", html)
#print(plt)
fori in range(len(plt)):
price =eval(plt[i].split(":")[1])
title =eval(tlt[i].split(":")[1])
location =eval(loc[i].split(":")[1])
location = location.split(" ")[]
sales =eval(sale[i].split(":")[1])
sales = re.match(r"d+",sales).group()
print(price)
withopen("月饼数据.txt","a",encoding="utf-8") as f:
print(f)
f.write(title+","+price+","+sales+","+location+"
")
except:
print("")
def main():
goods="月饼"
depth=100
start_url ="https://s.taobao.com/search?q="+ goods
fori in range(depth):
try:
url = start_url +"&s="+ str(44* i)
print("url=",url)
html = get_html_text(url)
parse_page(html)
except:
continue
main()
知识点:Response对象的属性
r.status_code HTTP请求的返回状态,200表示连接成功,404表示失败 ;
r.text HTTP响应内容的字元串形式,即url对应的页面内容;
r.encoding 从HTTP header中猜测的响应内容编码方式;
r.apparent_encoding 从内容中分析出的响应内容编码方式(备选编码方式)。
数据清洗预览
由上图可以看出,全网月饼的均价在90元左右,最贵月饼价高达9999元,最高销量为355444(数据为当前爬取数据为准)。
数据分析可视化
广式月饼风采依旧,蛋黄、莲蓉口味深受最爱。
结论:
广式月饼、礼盒装占比很高;从口味上来看,蛋黄口味占比很高,比莲蓉,五仁都高,其他口味豆沙、水果、火腿等次之;从品牌商家来看,北京稻香村、广东华美排名靠前;从礼盒装、企业、员工、团购、批发来看,淘宝网也是企业采购月饼送员工的渠道之一。
详情代码如下:
importpandasaspd
importnumpyasnp
importmatplotlib.pyplotasplt
importmatplotlib
frompyechartsimportGeo,Style,Line,Bar,Overlap
fromwordcloudimportWordCloud, ImageColorGenerator
fromosimportpath
frompylabimportmpl
importjieba
f = open(r"C:UsersAdministratorDesktop月饼数据.txt",encoding="utf-8")
df = pd.read_csv(f,sep=",",names=["title","price","sales","location"])
title = df.title.values.tolist()
#对每个标题进行分词
title_s = []
forlineintitle:
title_cut = jieba.lcut(line)
title_s.append(title_cut)
title_clean = []
#停用词表
stopwords = ["月饼","礼品","口味","礼盒","包邮","【","】","送礼","大",
"中秋节","中秋月饼","2","饼","蓉","多","个","味","斤","送"," ","老",
"北京","云南","网红老"]
#剔除停用词表
forlineintitle_s:
line_clean = []
forwordinline:
ifwordnotinstopwords:
line_clean.append(word)
title_clean.append(line_clean)
title_clean_dist = []
#进行去重
forlineintitle_clean:
line_dist = []
forwordinline:
ifwordnotinline_dist:
line_dist.append(word)
title_clean_dist.append(line_dist)
allwords_clean_dist = []
forlineintitle_clean_dist:
forwordinline:
allwords_clean_dist.append(word)
df_allwords_clean_dist = pd.DataFrame({"allwords":allwords_clean_dist})
#对过滤_去重词语进行汇总统计
word_count = df_allwords_clean_dist.allwords.value_counts().reset_index()
word_count.columns = ["word","count"]
backgroud_Image = plt.imread("1.jpg")
wc = WordCloud(width=1024,height=768,background_color="white",
mask=backgroud_Image,font_path="C:simhei.ttf",max_font_size=400,
random_state=50)
wc = wc.fit_words()
plt.imshow(wc,interpolation="bilinear")
plt.axis("off")
plt.show()
d = path.dirname(__file__)
wc.to_file(path.join(d,"yuebing.png"))
知识点:
font_path : string //字体路径,需要展现什么字体就把该字体路径+后缀名写上,如:font_path = "黑体.ttf";
mask : nd-array or None (default=None) //如果参数为空,则使用二维遮罩绘制词云。如果 mask 非空,设置的宽高值将被忽略,遮罩形状被 mask 取代。除全白(#FFFFFF)的部分将不会绘制,其余部分会用于绘制词云。如:bg_pic = imread("读取一张图片.png"),背景图片的画布一定要设置为白色(#FFFFFF),然后显示的形状为不是白色的其他颜色。可以用ps工具将自己要显示的形状复制到一个纯白色的画布上再保存,就ok了;
stopwords : set of strings or None //设置需要屏蔽的词,如果为空,则使用内置的STOPWORDS ;
background_color : color value (default=”black”) //背景颜色,如background_color="white",背景颜色为白色;
max_font_size : int or None (default=None) //显示的最大的字体大小 ;
fit_words(frequencies) //根据词频生成词云(frequencies,为字典类型)。
不同关键词word对应的sales之和的统计分析
(说明:例如 词语 ‘广式’,则统计商品标题中含有‘广式’一词的商品的销量之和,即求出具有‘广式’风格的商品销量之和)
由上图可以看出:礼盒装、广式、蛋黄、莲蓉、五仁、稻香村、华美等关键词靠前,也再次验证了广式月饼堪称月饼之王,实际付款人高达近700万,广式月饼可谓是风采依旧。
虽然广式月饼起源于广州,但凭借其松软的饼皮和多元丰富的馅料,实际已经在全国各地流行开来,成为名副其实的“月饼之王”。
详情代码如下:
w_s_sum = []
for w in word_count.word:
i = 0
s_list = []
for t in title_clean_dist:
if w in t:
s_list.append(df.sales[i])
i+= 1
w_s_sum.append(sum(s_list))
df_w_s_sum = pd.DataFrame({"w_s_sum":w_s_sum})
df_word_sum = pd.concat([word_count,df_w_s_sum],axis=1,ignore_index=True)
df_word_sum.columns = ["word","count","w_s_sum"]
df_word_sum.sort_values("w_s_sum",inplace=True,ascending=True)
df_w_s = df_word_sum.tail(30)
attr = df_w_s["word"]
v1 = df_w_s["w_s_sum"]
bar = Bar("月饼关键词销量分布图")
bar.add("关键词",attr,v1,is_stack=True,xaxis_rotate=30,yaxix_min=4.2,
xaxis_interval=0,is_splitline_show=False)
overlap = Overlap()
overlap.add(bar)
overlap.render("月饼关键词_销量分布图.html")
多数商品销量为3000以下,占比高达90%
由上图看出,销售量在10万以上的寥寥无几,共8种,其中销售量30万以上就有6款。当今网红经济下,爆品为王,一款独大;正所谓网红就是营销,爆品就是产品,有了好的产品再经过营销的运作就能产生十倍的放大效益, 如果没有好的产品,光有营销企业也难以长久。要利用网红经济来打造爆款,选择爆款一定要有自己的特色,在销售的过程中,客户的评价对产品的搜索排序和客户下单转化起著至关重要的作用;
消费降级?均价在10-100元占比50%
商品数量随着价格总体呈现下降阶梯形势,价格越高,在售的商品越少;低价位商品居多,价格在10-100之间的商品最多,100-200之间的次之,价格8000以上的商品较少。
详情代码如下:
后记
由上图可看出,全网Top15中,广式口味占80%,全国各地都在卖广式月饼。月饼种类那么多,为何偏偏是广式月饼横行中国?广式月饼外层是糖浆皮,以小麦粉、糖浆、植物油、碱水等原料制作烘烤而成,这并非中国传统的糕饼技艺,这与广式月饼的起源有关。
广东流行中秋月饼比中国其他地区的时间更晚,要迟到晚清时期。在此之前,广州沙面地区已因鸦片战争变为英、法租界,各类西饼店纷纷踏上广州地界。以糖浆皮包裹烘烤而成的广式月饼,其实是学习西式糕点作法的产物。
广式月饼能一统天下,最重要的一条是广式月饼的原料,这个原料就是莲蓉。早在1889年,当时广州城西的一家叫“莲香楼”的糕酥店,将莲子熬成莲蓉作馅料,做成的酥饼清香可口,大受欢迎。后来,莲香楼的生产者将这种莲蓉馅料的饼点定型为月饼,逐渐形成后来的广式月饼。
今年你吃到哪些好吃的月饼了吗?在评论区留言吧!
本文为作者投稿,版权归作者所有。内容观点不代表CSDN立场。
相关文章
- 中兴受美国制裁事件 被罚了20亿美元过程事件始末 中兴被制裁后公司现状
2023-11-02 22:12:46
- B站怎么炸崩了哔哩哔哩服务器今日怎么又炸挂了?技术团队公开早先原因
2023-03-06 19:05:55
- 苹果iPhoneXS/XR手机电池容量续航最强?答案揭晓
2023-02-19 15:09:54
- 华为荣耀两款机型起内讧:荣耀Play官方价格同价同配该如何选?
2023-02-17 23:21:27
- google谷歌原生系统Pixel3 XL/4/5/6 pro手机价格:刘海屏设计顶配版曾卖6900元
2023-02-17 18:58:09
- 科大讯飞同传同声翻译软件造假 浮夸不能只罚酒三杯
2023-02-17 18:46:15
- 华为mate20pro系列手机首发上市日期价格,屏幕和电池参数配置对比
2023-02-17 18:42:49
- 小米MAX4手机上市日期首发价格 骁龙720打造大屏标准
2023-02-17 18:37:22
- 武汉弘芯遣散!结局是总投资1280亿项目烂尾 光刻机抵押换钱
2023-02-16 15:53:18
- 谷歌GoogleDrive网云盘下载改名“GoogleOne” 容量提升价格优惠
2023-02-16 13:34:45
- 巴斯夫将裁员6000人 众化工巨头裁员潮再度引发关注
2023-02-13 16:49:06
- 人手不足 韵达快递客服回应大量包裹派送异常没有收到
2023-02-07 15:25:20
- 资本微念与李子柒销声匿迹谁赢? 微念公司退出子柒文化股东
2023-02-02 09:24:38
- 三星GalaxyS8 S9 S10系统恢复出厂设置一直卡在正在检查更新怎么办
2023-01-24 10:10:02
- 华为Mate50 RS保时捷最新款顶级手机2022多少钱?1.2万元售价外观图片吊打iPhone14
2023-01-06 20:27:09
- 芯片常见的CPU芯片封装方式 QFP和QFN封装的区别?
2022-12-02 17:25:17
- 华为暂缓招聘停止社招了吗?官方回应来了
2022-11-19 11:53:50
- 热血江湖手游:长枪铁甲 刚猛热血 正派枪客全攻略技能介绍大全
2022-11-16 16:59:09
- 东京把玩了尼康微单相机Z7 尼康Z7现在卖多少钱?
2022-10-22 15:21:55
- 苹果iPhone手机灵动岛大热:安卓灵动岛App应用下载安装量超100万次
2022-10-03 22:13:45