點擊上方“Python爬蟲與數據挖掘”,進行關注
回覆“書籍”即可獲贈Python從入門到進階共10本電子書
圖片來源:互聯網
01
數據獲取
本文利用Python採集了淘寶網1585個商家車釐子銷售數據,獲取到車釐子的商品名稱、商品價格、付款人數、店鋪名稱、發貨地址等字段。限於篇幅,爬蟲代碼僅給出主函數:
def main():
browser.get('https://www.taobao.com/')
page = search_product(key_word)
print(page)
get_data()
page_num = 70
while int(page) != page_num:
print("-" * 100)
print("正在爬取第{}頁數據".format(page_num + 1))
browser.get('https://s.taobao.com/search?q={}&s={}'.format(key_word, page_num*44))
browser.implicitly_wait(10)
get_data()
page_num += 1
print("數據抓取完成")
if __name__ == '__main__':
key_word = "車釐子"
browser = webdriver.Chrome("./chromedriver")
main()
02
數據處理
1.數據讀取並預覽
import pandas as pd
import numpy as np
df = pd.read_csv('/菜J學Python/淘寶/車釐子.csv',header=None,
names=['商品名稱','商品價格','付款人數','店鋪名稱','發貨地址']) #添加字段名稱
df.sample(5)
2.查看數據信息
df.info()
<class 'pandas.core.frame.DataFrame'>
Int64Index: 1595 entries, 0 to 1674
Data columns (total 5 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 商品名稱 1595 non-null object
1 商品價格 1595 non-null float64
2 付款人數 1595 non-null object
3 店鋪名稱 1595 non-null object
4 發貨地址 1585 non-null object
dtypes: float64(1), object(4)
memory usage: 74.8+ KB
發現數據存在以下幾個問題:
(1)發貨地址有缺失值
(2)付款人數需做提取
(3)發貨地址需做分割
(4)自定義索引並降序
3.數據清洗
#剔除缺失記錄
df.dropna(axis=0, how='any', inplace=True)
#從發貨地址字段中切分出省份和城市
df["省份"] = df["發貨地址"].str.split(' ',expand=True)[0] #expand=True可以把用分割的內容直接分列
df["城市"] = df["發貨地址"].str.split(' ',expand=True)[1] #提取城市
df["城市"].fillna(df["省份"], inplace=True) #城市字段空值用省份非空值填充
#用正則表達式從付款人數中提取數字
import re
df['數字'] = [re.findall(r'(\d+\.{0,1}\d*)', i)[0] for i in df['付款人數']] # 提取數值
df['數字'] = df['數字'].astype('float') # 轉化數值型
df['單位'] = [''.join(re.findall(r'(萬)', i)) for i in df['付款人數']] # 提取單位(萬)
df['單位'] = df['單位'].apply(lambda x:10000 if x=='萬' else 1)
df['付款人數'] = df['數字'] * df['單位'] # 計算付款人數
df.drop(['發貨地址', '數字', '單位'], axis=1, inplace=True) # 刪除多餘的列
#按商品價格降序並重置索引
df = df.sort_values(by="商品價格", axis=0, ascending=False) #降序
df = df.reset_index(drop=True) #重置索引
清洗後,數據預覽如下:
03
數據可視化
在以往的數據可視化中,常常以Python可視化庫作圖。而本文將嘗試用Excel進行車釐子數據可視化,因爲在繪圖方面,Excel完全不輸Python!
1.國內哪些地方車釐子賣的最火?
車釐子作爲“明星水果”,不菲的價格常常讓打工人望而卻步。根據國家統計總局發佈的最新數據,上海人均可支配收入居首,超過7萬元,自然更容易實現“車釐子自由”。北京雖然收入較高,但可能受疫情影響較大,車釐子銷量並不多。
2.車釐子到底有多貴?
由上圖可知,40%的車釐子價格在201-500元之間(淘寶掛牌價,非每斤價格),50元以下的車釐子佔比不到4%,我表示有被貴到,你呢?如果你不嫌貴,那我幫你找到一家,可能符合你的需求,如下:
3.哪些店鋪賣的最好?
從銷量較高的淘寶店鋪來看,基本都是旗艦店,看來大家對店鋪品牌度關注較多。福瑞達旗艦店月銷量超6萬,名副其實車釐子銷冠,百果園緊隨其後。
4.在售的車釐子具有哪些特點?
爲了瞭解車釐子的特點,對商品名稱字段做了文本分析,以果籃爲背景繪製了車釐子詞雲圖。主要的特點還是可以看出來的,新鮮、智利、當季、特大等詞都是水果店家推銷的點。至於孕婦提及頻率這麼高,有點納悶,於是百度之:
那麼問題來了,特殊時期,我們打工人能不能剁手買車釐子?截至目前,根據中國疾控中心公佈的消息,目前並沒有發現因爲食用進口冷鏈食品而感染新冠肺炎的病例。因此對於普通消費者來說,無須過於恐慌。當然如果你確實非常焦慮的話,疫情期間也可以多選擇國內生產的食品。
結語
1.本數據分析只做學習研究之用途,提供的結論僅供參考,還請獨立思考。
------------------- End -------------------
往期精彩文章推薦:
歡迎大家點贊,留言,轉發,轉載,感謝大家的相伴與支持
想加入Python學習羣請在後臺回覆【入羣】
萬水千山總是情,點個【在看】行不行
/今日留言主題/
隨便說一兩句吧~~
本文分享自微信公衆號 - Python爬蟲與數據挖掘(crawler_python)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。