自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

爬了4332條淘寶數(shù)據(jù),看看1780元的粽子長啥樣?

大數(shù)據(jù) 數(shù)據(jù)分析
端午節(jié)到了,甜咸粽子之爭也拉開了帷幕。我用 Python 爬取了淘寶上的粽子數(shù)據(jù)并進行分析,看看有什么發(fā)現(xiàn)。

 端午節(jié)到了,甜咸粽子之爭也拉開了帷幕。我用 Python 爬取了淘寶上的粽子數(shù)據(jù)并進行分析,看看有什么發(fā)現(xiàn)。

[[331330]]

 

圖片來自 Pexels

1.爬蟲

爬取淘寶數(shù)據(jù),本次采用的方法是:Selenium 控制 Chrome 瀏覽器自動化操作。

其實我們還可以利用 Ajax 接口來構(gòu)造鏈接,但是非常繁瑣(包含加密秘鑰等),直接使用 Selenium 來模擬瀏覽器會省去很多事情。

之前的文章我們也用過相同的方法,比如:爬電腦、爬電腦、爬完電腦買不起

最常見的問題是 chromedriver 驅(qū)動與谷歌瀏覽器的版本不匹配,很容易就可以解決。

接下來,我們就開始利用 selenium 抓取淘寶商品,并使用 Xpath 解析得到商品名、價格、付款人數(shù)、店鋪名、發(fā)貨地址信息,最后將數(shù)據(jù)保存在本地。

爬蟲過程如下圖:

 

selenium 自動化爬取(需要淘寶掃描登錄一次)

  1. from selenium import webdriver 
  2.  
  3. # 搜索商品,獲取商品頁碼 
  4. def search_product(key_word): 
  5.     # 定位輸入框 
  6.     browser.find_element_by_id("q").send_keys(key_word) 
  7.     # 定義點擊按鈕,并點擊 
  8.     browser.find_element_by_class_name('btn-search').click() 
  9.     # 最大化窗口:為了方便我們掃碼 
  10.     browser.maximize_window() 
  11.     # 等待15秒,給足時間我們掃碼 
  12.     time.sleep(15) 
  13.     # 定位這個“頁碼”,獲取“共100頁這個文本” 
  14.     page_info = browser.find_element_by_xpath('//div[@class="total"]').text 
  15.     # 需要注意的是:findall()返回的是一個列表,雖然此時只有一個元素它也是一個列表。 
  16.     page = re.findall("(\d+)",page_info)[0] 
  17.     return page 

詳細爬蟲代碼下載見文末。

2.數(shù)據(jù)整理

此時我們爬取得到的數(shù)據(jù):

 

整理前的數(shù)據(jù)

數(shù)據(jù)還是比較粗糙的,有幾個問題需要我們?nèi)ヌ幚恚?/p>

  • 添加列名
  • 去除重復數(shù)據(jù)(翻頁爬取過程中會有重復)
  • 購買人數(shù)為空的記錄,替換成 0 人付款
  • 將購買人數(shù)轉(zhuǎn)換為銷量(注意部分單位為萬)
  • 刪除無發(fā)貨地址的商品,并提取其中的省份

部分代碼:

  1. # 刪除無發(fā)貨地址的商品,并提取省份 
  2. df = df[df['發(fā)貨地址'].notna()] 
  3. df['省份'] = df['發(fā)貨地址'].str.split(' ').apply(lambda x:x[0]) 
  4.  
  5. # 刪除多余的列 
  6. df.drop(['付款人數(shù)''發(fā)貨地址''num''unit'], axis=1, inplace=True
  7.  
  8. # 重置索引 
  9. df = df.reset_index(drop=True
  10. df.head(10)  

 

 

整理后的數(shù)據(jù)

這樣我們就對數(shù)據(jù)完成了清洗與整理,方便下一步進行可視化。

順便做個排序,看看什么粽子最貴:

  1. df1 = df.sort_values(by="價格", axis=0, ascending=False
  2. df1.iloc[:5,:] 

 

價格 TOP5 的粽子

前三名都來自御茶膳房旗艦店,讓我們看看 1780 元的粽子長啥樣吧!

 

想嘗嘗!

 

3.數(shù)據(jù)可視化

本文我們打算用 pyecharts 進行可視化展示。有同學可能使用的是老版本(0.5X),Pyecharts 的 1.x 版本與老版本(0.5X)不兼容,如果無法導入可能是這個問題哈。

可視化所有語句均基于 v1.7.1,通過以下語句可查詢你的 pyecharts 版本:

  1. import pyecharts 
  2.  
  3. print(pyecharts.__version__) 

扇形圖

最貴的粽子 1780 元看來是吃不起了,那大家都買什么價位的呢?

先按照淘寶推薦的區(qū)間劃分一下:

  1. def price_range(x): #按照淘寶推薦劃分價格區(qū)間 
  2.     if x <= 22: 
  3.         return '22元以下' 
  4.     elif x <= 115: 
  5.         return '22-115元' 
  6.     elif x <= 633: 
  7.         return '115-633元' 
  8.     else
  9.         return '633元以上' 

再使用 pyecharts 來生成不同價格區(qū)間的粽子銷量占比圖。

 

不同價格區(qū)間的粽子銷量占比

看來百元以內(nèi)的粽子(禮盒裝)才是大家的正常承受范圍,不過我還是選擇小區(qū)門口的 5 塊錢 3 個。

詞云圖

我們用 jieba 對爬取得到的商品名稱分詞,生成詞云。

  1. from pyecharts.charts import WordCloud 
  2. from pyecharts.globals import SymbolType 
  3.  
  4. # 詞云圖 
  5. word1 = WordCloud(init_opts=opts.InitOpts(width='1350px', height='750px')) 
  6. word1.add("", [*zip(key_words.words, key_words.num)], 
  7.           word_size_range=[20, 200], 
  8.           shape=SymbolType.DIAMOND) 
  9. word1.set_global_opts(title_opts=opts.TitleOpts('粽子商品名稱詞云圖'), 
  10.                       toolbox_opts=opts.ToolboxOpts()) 
  11. word1.render("粽子商品名稱詞云圖.html"

 

粽子商品名稱詞云圖

碩大的粽子周圍環(huán)繞著幾個突出的關(guān)鍵詞:禮盒裝、鮮肉、蛋黃、嘉興、豆沙、端午節(jié)。

 

除去端午節(jié)相關(guān)的詞匯,我們通過關(guān)鍵詞大小似乎就知道幾種口味的受歡迎情況。

查閱資料對比一下,還真是大體一致。心疼我棗粽。至于嘉興這個地名,我們后文會繼續(xù)提到。

條形圖

上文我們查到了最貴的粽子,那么銷量最好的粽子/店鋪是什么呢?

 

粽子商品銷量 Top10

五芳齋共 4 款入圍,其中一款禮盒裝達到了 100萬+ 的銷量,應該比這個還多(參見微信的 10w+)。真真老老緊隨其后,3 款粽子進入 TOP10。

其余的品牌還有稻香村和知味觀,額,第九名是賣粽葉的,看來自己包粽子的需求也是蠻大的嘛。

 

粽子店鋪銷量 Top10

粽子店鋪銷量 Top10 其實與商品相似,五芳齋官方旗艦店和真真老老旗艦店占據(jù)首位,遙遙領(lǐng)先。

經(jīng)過查閱,五芳齋,真真老老,都為嘉興的粽子兩大品牌,那難怪嘉興在詞云圖里那么突出。

嘉興屬于浙江省,銷量冠亞軍都在這里,那浙江豈不是占比很大。還真是這樣。

地圖

繼續(xù)使用 pyecharts 來生成各省份粽子銷量分布圖:

  1. from pyecharts.charts import Map  
  2.  
  3. # 計算銷量 
  4. province_num = df.groupby('省份')['銷量'].sum().sort_values(ascending=False)  
  5.  
  6. # 繪制地圖 
  7. map1 = Map(init_opts=opts.InitOpts(width='1350px', height='750px')) 
  8. map1.add("", [list(z) for z in zip(province_num.index.tolist(), province_num.values.tolist())], 
  9.          maptype='china' 
  10.         )  
  11. map1.set_global_opts(title_opts=opts.TitleOpts(title='各省份粽子銷量分布'), 
  12.                      visualmap_opts=opts.VisualMapOpts(max_=300000), 
  13.                      toolbox_opts=opts.ToolboxOpts() 
  14.                     ) 
  15. map1.render("各省份粽子銷量分布.html"

 

各省份粽子銷量分布

這個銷量占比差異真的是太大了??梢哉f中國粽子看浙江,浙江粽子看嘉興。(通過計算發(fā)貨地址為浙江的粽子銷量占比 70.6%,而嘉興占浙江的 87.4%)

[[331332]]

 

紀錄片《舌尖上的中國》里的嘉興粽

4.小結(jié)

粽子自古以來就代表著紀念和美好的祝愿,而在這個并不安穩(wěn)的 2020,端午的粽子更多了一些祈愿國泰民安,順利度過陰霾的意義。

[[331333]]

 

“端午安康”不再是一句客套話,而是我們能送給彼此的最好的愿景。

本文數(shù)據(jù)和爬蟲可視化源碼下載地址:

  1. https://alltodata.cowtransfer.com/s/d11c8906cd9c4c 

作者:朱小五

編輯:陶家龍

出處:轉(zhuǎn)載自微信公眾號凹凸數(shù)據(jù)(ID:alltodata)

 

責任編輯:武曉燕 來源: 凹凸數(shù)據(jù)
相關(guān)推薦

2021-12-07 07:01:21

Python病毒 文件

2018-03-07 09:35:08

Python淘寶數(shù)據(jù)

2022-04-07 07:51:40

代碼結(jié)構(gòu)設(shè)計

2013-12-03 10:33:51

微軟Windows 9

2022-10-10 11:32:01

數(shù)據(jù)分析技術(shù)

2017-08-21 10:05:57

Python影評 爬蟲

2023-08-06 13:02:41

AI技術(shù)

2021-11-01 22:29:28

Python數(shù)據(jù)單身

2018-02-25 23:12:16

2021-06-24 05:40:28

Windows 10操作系統(tǒng)微軟

2021-02-06 14:02:44

大數(shù)據(jù)崗位招聘

2020-10-26 08:02:28

SQL慢查詢索引

2015-09-11 09:59:04

阿里云數(shù)據(jù)中心

2024-04-26 12:39:55

OLAP架構(gòu)存儲

2017-11-16 13:31:41

大數(shù)據(jù)淘寶雙11

2020-05-16 13:25:03

分析網(wǎng)購數(shù)據(jù)

2022-07-05 11:24:40

加密貨幣元宇宙Meta

2019-11-22 09:42:11

內(nèi)衣信息網(wǎng)頁

2020-01-09 10:03:41

AI 數(shù)據(jù)人工智能

2019-05-05 09:14:19

數(shù)據(jù).
點贊
收藏

51CTO技術(shù)棧公眾號