表哥用Python爬取數千條淘寶商品數據後,發現淘寶這些潛規則!

原文鏈接:https://zhuanlan.zhihu.com/p/88611893/edit

本文記錄了筆者用 Python 爬取淘寶某商品的全過程,並對商品數據進行了挖掘與分析,最終得出結論。

 

項目內容

 

  • 本案例選擇商品類目:沙發。

  • 數量:共 100 頁  4400 個商品。

  • 篩選條件:天貓、銷量從高到低、價格 500 元以上。

 

 

項目目的

 

  • 對商品標題進行文本分析,詞雲可視化

  • 不同關鍵詞 word 對應的 sales 的統計分析

  • 商品的價格分佈情況分析

  • 商品的銷量分佈情況分析

  • 不同價格區間的商品的平均銷量分佈

  • 商品價格對銷量的影響分析

  • 商品價格對銷售額的影響分析

  • 不同省份或城市的商品數量分佈

  • 不同省份的商品平均銷量分佈

 

注:本項目僅以以上幾項分析爲例。

 

 

項目步驟

 

  • 數據採集:Python 爬取淘寶網商品數據

  • 對數據進行清洗和處理

  • 文本分析:jieba 分詞、wordcloud 可視化

  • 數據柱形圖可視化:barh

  • 數據直方圖可視化hist

  • 數據散點圖可視化scatter

  • 數據迴歸分析可視化regplot

 

 

工具&模塊

 

  • 工具:本案例代碼編輯工具 Anaconda 的 Spyder。

  • 模塊:requests、retrying、missingno、jieba、matplotlib、wordcloud、imread、seaborn 等。

 

 

爬取數據

 

因淘寶網是反爬蟲的,雖然使用多線程、修改 headers 參數,但仍然不能保證每次 100% 爬取,所以我增加了循環爬取,每次循環爬取未爬取成功的頁 ,直至所有頁爬取成功停止。

 

說明:淘寶商品頁爲 JSON 格式,這裏使用正則表達式進行解析。

 

代碼如下:

 

數據清洗、處理

數據清洗、處理這個步驟也可以在 Excel 中完成,再讀入數據。

 

代碼如下:

 

 

說明:根據需求,本案例中只取了 item_loc,raw_title,view_price,view_sales 這 4 列數據,主要對區域、標題、價格、銷量進行分析。

 

代碼如下:

數據挖掘與分析

 

對 raw_title 列標題進行文本分析

 

使用結巴分詞器,安裝模塊 pip install jieba:

對 title_s(list of list 格式)中的每個 list 的元素(str)進行過濾,剔除不需要的詞語,即把停用詞表 stopwords 中有的詞語都剔除掉:

因爲下面要統計每個詞語的個數,所以爲了準確性,這裏對過濾後的數據 title_clean 中的每個 list 的元素進行去重,即每個標題被分割後的詞語唯一。

觀察 word_count 表中的詞語,發現 jieba 默認的詞典無法滿足需求。

 

有的詞語(如可拆洗、不可拆洗等)卻被 cut,這裏根據需求對詞典加入新詞(也可以直接在詞典 dict.txt 裏面增刪,然後載入修改過的 dict.txt)。

詞雲可視化需要安裝 wordcloud 模塊。

 

安裝模塊有兩種方法:

  • pip install wordcloud

  • 下載 Packages 安裝:pip install 軟件包名稱

 

軟件包下載地址:https://www.lfd.uci.edu/~gohlke/pythonlibs/#wordcloud

 

注意:要把下載的軟件包放在 Python 安裝路徑下。

 

代碼如下:

分析結論:

  • 組合、整裝商品佔比很高。

  • 從沙發材質看:布藝沙發佔比很高,比皮藝沙發多。

  • 從沙發風格看:簡約風格最多,北歐風次之,其他風格排名依次是美式、中式、日式、法式等。

  • 從戶型看:小戶型佔比最高、大小戶型次之,大戶型最少。

 

 

不同關鍵詞 word 對應的 sales 之和的統計分析

 

說明:例如詞語“簡約”,則統計商品標題中含有“簡約”一詞的商品的銷量之和,即求出具有“簡約”風格的商品銷量之和。

 

代碼如下:

對錶 df_word_sum 中的 word 和 w_s_sum 兩列數據進行可視化。(本例中取銷量排名前 30 的詞語進行繪圖)

由圖表可知:

  • 組合商品銷量最高。

  • 從品類看:布藝沙發銷量很高,遠超過皮藝沙發。

  • 從戶型看:小戶型沙發銷量最高,大小戶型次之,大戶型銷量最少。

  • 從風格看:簡約風銷量最高,北歐風次之,其他依次是中式、美式、日式等。

  • 可拆洗、轉角類沙發銷量可觀,也是頗受消費者青睞的。

 

 

商品的價格分佈情況分析

 

分析發現,有一些值太大,爲了使可視化效果更加直觀,這裏我們結合自身產品情況,選擇價格小於 20000 的商品。

 

代碼如下:

由圖表可知:

  • 商品數量隨着價格總體呈現下降階梯形勢,價格越高,在售的商品越少。

  • 低價位商品居多,價格在 500-1500 之間的商品最多,1500-3000 之間的次之,價格 1 萬以上的商品較少。

  • 價格 1 萬元以上的商品,在售商品數量差異不大。

 

商品的銷量分佈情況分析

 

同樣,爲了使可視化效果更加直觀,這裏我們選擇銷量大於 100 的商品。

 

代碼如下:

由圖表及數據可知:

  • 銷量 100 以上的商品僅佔 3.4% ,其中銷量 100-200 之間的商品最多,200-300 之間的次之。

  • 銷量 100-500 之間,商品的數量隨着銷量呈現下降趨勢,且趨勢陡峭,低銷量商品居多。

  • 銷量 500 以上的商品很少。

 

 

不同價格區間的商品的平均銷量分佈

 

代碼如下:

由圖表可知:

  • 價格在 1331-1680 之間的商品平均銷量最高,951-1331 之間的次之,9684 元以上的最低。

  • 總體呈現先增後減的趨勢,但最高峯處於相對低價位階段。

  • 說明廣大消費者對購買沙發的需求更多處於低價位階段,在 1680 元以上價位越高,平均銷量基本是越少。

 

 

商品價格對銷量的影響分析

 

同上,爲了使可視化效果更加直觀,這裏我們結合自身產品情況,選擇價格小於 20000 的商品。

 

代碼如下:

由圖表可知:

  • 總體趨勢:隨着商品價格增多,其銷量減少,商品價格對其銷量影響很大。

  • 價格 500-2500 之間的少數商品銷量衝的很高,價格 2500-5000 之間的商品多數銷量偏低,少數相對較高,但價格 5000 以上的商品銷量均很低,沒有銷量突出的商品。

 

 

商品價格對銷售額的影響分析

 

代碼如下:

由圖表可知:

  • 總體趨勢:由線性迴歸擬合線可以看出,商品銷售額隨着價格增長呈現上升趨勢。

  • 多數商品的價格偏低,銷售額也偏低。

  • 價格在 0-20000 的商品只有少數銷售額較高,價格 2-6 萬的商品只有 3 個銷售額較高,價格 6-10 萬的商品有 1 個銷售額很高,而且是最大值。在學習Python的過程中,往往因爲沒有資料或者沒人指導從而導致自己不想學下去了,因此姐姐我特意準備了個羣 631441315 ,羣裏有大量的PDF書籍、教程都給大家免費使用!不管是學習到哪個階段的小夥伴都可以獲取到自己相對應的資料!

 

 

不同省份的商品數量分佈

 

代碼如下:

由圖表可知:

  • 廣東的最多,上海次之,江蘇第三,尤其是廣東的數量遠超過江蘇、浙江、上海等地,說明在沙發這個子類目,廣東的店鋪占主導地位。

  • 江浙滬等地的數量差異不大,基本相當。

 

 

不同省份的商品平均銷量分佈

 

代碼如下:

熱力型地圖

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章