全国服务热线:400-035-8011

位置:重庆中公优就业IT培训机构 > 学校动态 > 看看1780元的粽子长啥样

看看1780元的粽子长啥样

来源:重庆中公优就业IT培训机构时间:2020/12/22 11:54:49

  爬了4332条淘宝数据,看看1780元的粽子长啥样?

  端午节到了,甜咸粽子之争也拉开了帷幕。我用 Python 爬取了淘宝上的粽子数据并进行分析,看看有什么发现。

看看1780元的粽子长啥样

  1.爬虫

  爬取淘宝数据,本次采用的方法是:Selenium 控制 Chrome 浏览器自动化操作。

  其实我们还可以利用 Ajax 接口来构造链接,但是非常繁琐(包含加密秘钥等),直接使用 Selenium 来模拟浏览器会省去很多事情。

  之前的文章我们也用过相同的方法,比如:爬电脑、爬电脑、爬完电脑买不起

  常见的问题是 chromedriver 驱动与谷歌浏览器的版本不匹配,很容易就可以解决。

  接下来,我们就开始利用 selenium 抓取淘宝商品,并使用 Xpath 解析得到商品名、价格、付款人数、店铺名、发货地址信息,后将数据保存在本地。

  selenium 自动化爬取(需要淘宝扫描登录一次)

  from selenium import webdriver  # 搜索商品,获取商品页码 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

  详细爬虫代码下载见文末。

  2.数据整理

  数据还是比较粗糙的,有几个问题需要我们去处理:

  添加列名

  去除重复数据(翻页爬取过程中会有重复)

  购买人数为空的记录,替换成 0 人付款

  将购买人数转换为销量(注意部分单位为万)

  删除无发货地址的商品,并提取其中的省份

  部分代码:

  # 删除无发货地址的商品,并提取省份 df = df[df['发货地址'].notna()] df['省份'] = df['发货地址'].str.split(' ').apply(lambda x:x[0])  # 删除多余的列 df.drop(['付款人数', '发货地址', 'num', 'unit'], axis=1, inplace=True)  # 重置索引 df = df.reset_index(drop=True) df.head(10)

  这样我们就对数据完成了清洗与整理,方便下一步进行可视化。

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

  df1 = df.sort_values(by="价格", axis=0, ascending=False) df1.iloc[:5,:]

  3.数据可视化

  本文我们打算用 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 来生成各省份粽子销量分布图:

  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")

  这个销量占比差异真的是太大了。可以说中国粽子看浙江,浙江粽子看嘉兴。(通过计算发货地址为浙江的粽子销量占比 70.6%,而嘉兴占浙江的 87.4%)

  4.小结

  粽子自古以来就代表着纪念和美好的祝愿,而在这个并不安稳的 2020,端午的粽子更多了一些祈愿国泰民安,顺利度过阴霾的意义。

  “端午安康”不再是一句客套话,而是我们能送给彼此的好的愿景。

领取试听课
每天限量名额,先到先得

尊重原创文章,转载请注明出处与链接:http://www.peixun360.com/3179/news/298961/违者必究! 以上就是重庆中公优就业IT培训机构 小编为您整理 看看1780元的粽子长啥样的全部内容。

温馨提示:提交留言后老师会第一时间与您联系!热线电话:400-035-8011