我用Python分析了一波熱賣年貨阁苞,原來大家都在買這些東西困檩?

今年不知道有多少小伙伴留在工作地過年呢祠挫,雖然今年過年不能回老家,但這個年也得過悼沿,也得買年貨等舔,給家人長輩送禮。于是我出于好奇心的想法利用爬蟲獲取某寶數(shù)據(jù)糟趾,并結(jié)合 Python 數(shù)據(jù)分析和第三方可視化平臺來分析一下大家過年都買了哪些東西慌植,分析結(jié)果大屏如下:

上面使用清洗好的數(shù)據(jù)后用finebi三方可視化工具完成的。接下來是從采集到分析的實現(xiàn)過程义郑。對于本文的敘述蝶柿,我會分以下五步為大家講解。

  • 分析思路
  • 爬蟲部分
  • 數(shù)據(jù)清洗
  • 數(shù)據(jù)可視化及分析
  • 結(jié)論與建議

一非驮、分析思路

其實就今天的數(shù)據(jù)來講交汤,我們要做的是探索性分析。首先梳理已有的字段院尔,有標題(提取出品類)蜻展、價格、銷量邀摆、店鋪名纵顾、發(fā)貨地。下面來做一下詳細的維度拆分栋盹,及可視化圖形選擇:

  • 品類 :
    ①品類銷量的排名前十有哪些(表格或者橫向條形圖)
    ② 熱門(出現(xiàn)次數(shù)最多)品類展示(詞云)
  • 價格:年貨的價格區(qū)間分布情況(圓環(huán)圖施逾,觀察占比)
  • 銷量、店鋪名:
    ①店鋪銷量最高的前十名有哪些(條形圖)
    ②結(jié)合品類做聯(lián)動例获。比如點堅果汉额,對應(yīng)展示銷量排名的店鋪。(聯(lián)動榨汤,利用三方工具)
  • 發(fā)貨地:銷量最高的城市是哪個(地圖)

二蠕搜、爬取數(shù)據(jù)

爬取主要利用selenium模擬點擊瀏覽器,前提是已經(jīng)安裝selenium和瀏覽器驅(qū)動收壕,這里我是用的是谷歌妓灌,找到對應(yīng)的版本號下載對應(yīng)的版本驅(qū)動。一定要對應(yīng)瀏覽器的版本號蜜宪。

pip install selenium

安裝成功后虫埂。運行如下代碼,輸入關(guān)鍵字"年貨"圃验,進行掃碼就可以了掉伏。等著程序慢慢采集。

# coding=utf8
import re
from selenium.webdriver.chrome.options import Options
from selenium import webdriver
import time
import csv

# 搜索商品,獲取商品頁碼
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

# 獲取數(shù)據(jù)
def get_data():
    items = browser.find_elements_by_xpath('//div[@class="items"]/div[@class="item J_MouserOnverReq  "]')
    for item in items:
        # 參數(shù)信息
        pro_desc = item.find_element_by_xpath('.//div[@class="row row-2 title"]/a').text
        # 價格
        pro_price = item.find_element_by_xpath('.//strong').text
        # 銷量
        buy_num = item.find_element_by_xpath('.//div[@class="deal-cnt"]').text
        # 店鋪名稱
        shop = item.find_element_by_xpath('.//div[@class="shop"]/a').text
        # 發(fā)貨地址
        address = item.find_element_by_xpath('.//div[@class="location"]').text
        # print(pro_desc, pro_price, buy_num, shop, address)
        with open('{}.csv'.format(key_word), mode='a', newline='', encoding='utf-8-sig') as f:
            csv_writer = csv.writer(f, delimiter=',')
            csv_writer.writerow([pro_desc, pro_price, buy_num, shop, address])

def main():
    browser.get('https://www.taobao.com/')
    page = search_product(key_word)
    print(page)
    get_data()
    page_num = 1
    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(25)
        get_data()
        page_num += 1
    print("數(shù)據(jù)爬取完畢!")

if __name__ == '__main__':
    key_word = input("請輸入你要搜索的商品:")
    option = Options()
    browser = webdriver.Chrome(chrome_options=option, executable_path=r".\chromedriver.exe")
    main()

采集結(jié)果如下:

數(shù)據(jù)準備完成闯参,中間從標題里提取類別過程一言難盡,很耗時悲立,這里建議大家直接用整理好的數(shù)據(jù)鹿寨。大概思路是對標題進行分詞,命名實體識別薪夕,標記出名詞脚草,找出類別名稱,比如堅果原献、茶葉等馏慨。

三、數(shù)據(jù)清洗

這里的文件清洗幾乎用excel搞定的姑隅,數(shù)據(jù)集小写隶,用Excel效率很高,比如這里做了一個價格區(qū)間讲仰。到現(xiàn)在數(shù)據(jù)清洗已經(jīng)完成(可以用三方工具做可視化了)慕趴,如果大家愛折騰,可以接著往下看用Python如何進行分析鄙陡。

四冕房、數(shù)據(jù)可視化及分析

1、讀取文件
import pandas as pd
import matplotlib as mpl
mpl.rcParams['font.family'] = 'SimHei'
import matplotlib.pyplot as plt
from wordcloud import WordCloud
datas = pd.read_csv('./年貨.csv',encoding='gbk')
datas.head(5)
2趁矾、可視化:繪制詞云圖
li = []
for each in datas['關(guān)鍵詞'].values:
    new_list = str(each).split(',')
    li.extend(new_list)
def func_pd(words):
    count_result = pd.Series(words).value_counts()
    return count_result.to_dict()

frequencies = func_pd(li)
frequencies.pop('其他')

plt.figure(figsize = (10,4),dpi=80)
wordcloud = WordCloud(font_path="STSONG.TTF",background_color='white', width=700,height=350).fit_words(frequencies)
plt.imshow(wordcloud)
plt.axis("off")
plt.show()

圖表說明:我們可以看到詞云圖耙册,熱門(出現(xiàn)次數(shù)最多)品類字體最大,依次是:堅果毫捣、茶葉详拙、糕點等。

3培漏、可視化:繪制圓環(huán)圖
# plt.pie(x,lables,autopct,shadow,startangle,colors,explode)
food_type = datas.groupby('價格區(qū)間').size()
plt.figure(figsize=(8,4),dpi=80)
explodes= [0,0,0,0,0.2,0.1]
size = 0.3
plt.pie(food_type, radius=1,labels=food_type.index, autopct='%.2f%%', colors=['#F4A460','#D2691E','#CDCD00','#FFD700','#EEE5DE'],
       wedgeprops=dict(width=size, edgecolor='w'))
plt.title('年貨價格區(qū)間占比情況',fontsize=18)
plt.legend(food_type.index,bbox_to_anchor=(1.5, 1.0))
plt.show()

圖表說明:圓環(huán)圖和餅圖類似溪厘,代表部分相對于整體的占比情況,可以看到0 ~ 200元的年貨大概33%左右牌柄,100 ~ 200元也是33%畸悬。說明大部分的年貨的價格趨于200以內(nèi)。

4、可視化:繪制條形圖
data = datas.groupby(by='店鋪名')['銷量'].sum().sort_values(ascending=False).head(10)
plt.figure(figsize = (10,4),dpi=80)

plt.ylabel('銷量')
plt.title('年貨銷量前十名店鋪',fontsize=18)
colors = ['#F4A460','#D2691E','#CDCD00','#EEE5DE', '#EEB4B4', '#FFA07A', '#FFD700']
plt.bar(data.index,data.values, color=colors)
plt.xticks(rotation=45)
plt.show()

圖表說明:以上是店鋪按銷量排名情況蹋宦,可以看到第一名是三只松鼠旗艦店披粟,看來過年大家都喜歡吃干貨。

5冷冗、可視化:繪制橫向條形圖
foods = datas.groupby(by='類別')['銷量'].sum().sort_values(ascending=False).head(10)
foods.sort_values(ascending=True,inplace=True)
plt.figure(figsize = (10,4),dpi=80)
plt.xlabel('銷量')
plt.title('年貨推薦購買排行榜',fontsize=18)
colors = ['#F4A460','#D2691E','#CDCD00','#CD96CD','#EEE5DE', '#EEB4B4', '#FFA07A', '#FFD700']
plt.barh(foods.index,foods.values, color=colors,height=1)
plt.show()

圖表說明:根據(jù)類別銷量排名守屉,排名第一是堅果,驗證了上面的假設(shè)蒿辙,大家喜歡吃堅果拇泛。

五、結(jié)論與建議

  • 淘寶熱賣年貨: 堅果思灌,茶葉俺叭,糕點,餅干泰偿,糖果熄守,白酒,核桃耗跛,羊肉裕照,海參,枸杞调塌;
  • 年貨推薦清單(按銷量):堅果晋南、零食、糕點烟阐、餅干搬俊、茶葉、糖果蜒茄、松子唉擂、紅棗、蛋糕檀葛、鹵味玩祟、瓜子、牛奶屿聋、核桃空扎;
  • 年貨價格參考:66%以上的年貨價格在0~200元之間;
  • 熱門店鋪:三只老鼠润讥、天貓超市转锈、百草味、良品鋪子楚殿。

希望本文的內(nèi)容對大家的學習或者工作能帶來一定的幫助撮慨,每天進步一點點,加油。?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末砌溺,一起剝皮案震驚了整個濱河市影涉,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌规伐,老刑警劉巖蟹倾,帶你破解...
    沈念sama閱讀 218,941評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異猖闪,居然都是意外死亡鲜棠,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評論 3 395
  • 文/潘曉璐 我一進店門培慌,熙熙樓的掌柜王于貴愁眉苦臉地迎上來岔留,“玉大人,你說我怎么就攤上這事检柬。” “怎么了竖配?”我有些...
    開封第一講書人閱讀 165,345評論 0 356
  • 文/不壞的土叔 我叫張陵何址,是天一觀的道長。 經(jīng)常有香客問我进胯,道長用爪,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,851評論 1 295
  • 正文 為了忘掉前任胁镐,我火速辦了婚禮偎血,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘盯漂。我一直安慰自己颇玷,他們只是感情好,可當我...
    茶點故事閱讀 67,868評論 6 392
  • 文/花漫 我一把揭開白布就缆。 她就那樣靜靜地躺著帖渠,像睡著了一般。 火紅的嫁衣襯著肌膚如雪竭宰。 梳的紋絲不亂的頭發(fā)上空郊,一...
    開封第一講書人閱讀 51,688評論 1 305
  • 那天,我揣著相機與錄音切揭,去河邊找鬼狞甚。 笑死,一個胖子當著我的面吹牛廓旬,可吹牛的內(nèi)容都是我干的哼审。 我是一名探鬼主播,決...
    沈念sama閱讀 40,414評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼棺蛛!你這毒婦竟也來了怔蚌?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,319評論 0 276
  • 序言:老撾萬榮一對情侶失蹤旁赊,失蹤者是張志新(化名)和其女友劉穎桦踊,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體终畅,經(jīng)...
    沈念sama閱讀 45,775評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡籍胯,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了离福。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片杖狼。...
    茶點故事閱讀 40,096評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖妖爷,靈堂內(nèi)的尸體忽然破棺而出蝶涩,到底是詐尸還是另有隱情,我是刑警寧澤絮识,帶...
    沈念sama閱讀 35,789評論 5 346
  • 正文 年R本政府宣布绿聘,位于F島的核電站,受9級特大地震影響次舌,放射性物質(zhì)發(fā)生泄漏熄攘。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,437評論 3 331
  • 文/蒙蒙 一彼念、第九天 我趴在偏房一處隱蔽的房頂上張望挪圾。 院中可真熱鬧,春花似錦逐沙、人聲如沸哲思。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽也殖。三九已至,卻和暖如春务热,著一層夾襖步出監(jiān)牢的瞬間忆嗜,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評論 1 271
  • 我被黑心中介騙來泰國打工崎岂, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留捆毫,地道東北人。 一個月前我還...
    沈念sama閱讀 48,308評論 3 372
  • 正文 我出身青樓冲甘,卻偏偏與公主長得像绩卤,于是被迫代替她去往敵國和親途样。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,037評論 2 355