<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          我用 Python 分析了一波熱賣年貨,原來(lái)大家都在買這些東西?

          共 5623字,需瀏覽 12分鐘

           ·

          2021-02-10 15:22

          作者:Cherich_sun
          來(lái)源:公眾號(hào)「杰哥的IT之旅」ID:Jake_Internet
          本文為讀者投稿

          ↑?關(guān)注 + 星標(biāo)?,每天學(xué)Python新技能

          后臺(tái)回復(fù)【大禮包】送你Python自學(xué)大禮包

          今年不知道有多少小伙伴留在原地過(guò)年,雖然今年過(guò)年不能回老家,但這個(gè)年也得過(guò),也得買年貨,給家人長(zhǎng)輩送禮。于是我出于好奇心的想法利用爬蟲(chóng)獲取某寶數(shù)據(jù),并結(jié)合 Python 數(shù)據(jù)分析和第三方可視化平臺(tái)來(lái)分析一下大家過(guò)年都買了哪些東西,分析結(jié)果大屏如下:

          上面使用清洗好的數(shù)據(jù)后用 finebi 第三方可視化工具完成的。接下來(lái)是用 Python 的實(shí)現(xiàn)過(guò)程,對(duì)于本文的敘述,主要分為以下五步:

          • 分析思路

          • 爬蟲(chóng)部分

          • 數(shù)據(jù)清洗

          • 數(shù)據(jù)可視化及分析

          • 結(jié)論與建議

          一、分析思路

          其實(shí)就今天的數(shù)據(jù)來(lái)講,我們主要做的是探索性分析;首先梳理已有的字段,有標(biāo)題(提取出品類)、價(jià)格、銷量、店鋪名、發(fā)貨地。下面來(lái)做一下詳細(xì)的維度拆分以及可視化圖形選擇:

          品類:

          • 品類銷量的 TOP 10 有哪些?(表格或者橫向條形圖)

          • 熱門(出現(xiàn)次數(shù)最多)品類展示;(詞云)

          價(jià)格:年貨的價(jià)格區(qū)間分布情況;(圓環(huán)圖,觀察占比)

          銷量、店鋪名:

          • 店鋪銷量最高的 TOP 10 有哪些?(條形圖)

          • 結(jié)合品類做聯(lián)動(dòng),比如點(diǎn)堅(jiān)果,對(duì)應(yīng)展示銷量排名的店鋪;(聯(lián)動(dòng),利用三方工具)

          發(fā)貨地:銷量最高的城市有哪些?(地圖)

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

          爬取主要利用 selenium 模擬點(diǎn)擊瀏覽器,前提是已經(jīng)安裝 selenium 和瀏覽器驅(qū)動(dòng),這里我是用的 Google 瀏覽器,找到對(duì)應(yīng)的版本號(hào)后并下載對(duì)應(yīng)的版本驅(qū)動(dòng),一定要對(duì)應(yīng)瀏覽器的版本號(hào)。

          pip?install?selenium

          安裝成功后,運(yùn)行如下代碼,輸入關(guān)鍵字"年貨",進(jìn)行掃碼就可以了,等著程序慢慢采集。

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


          #?搜索商品,獲取商品頁(yè)碼
          def?search_product(key_word):
          ????#?定位輸入框
          ????browser.find_element_by_id("q").send_keys(key_word)
          ????#?定義點(diǎn)擊按鈕,并點(diǎn)擊
          ????browser.find_element_by_class_name('btn-search').click()
          ????#?最大化窗口:為了方便我們掃碼
          ????browser.maximize_window()
          ????#?等待15秒,給足時(shí)間我們掃碼
          ????time.sleep(15)
          ????#?定位這個(gè)“頁(yè)碼”,獲取“共100頁(yè)這個(gè)文本”
          ????page_info?=?browser.find_element_by_xpath('//div[@class="total"]').text
          ????#?需要注意的是:findall()返回的是一個(gè)列表,雖然此時(shí)只有一個(gè)元素它也是一個(gè)列表。
          ????page?=?re.findall("(\d+)",?page_info)[0]
          ????return?page


          #?獲取數(shù)據(jù)
          def?get_data():
          ????#?通過(guò)頁(yè)面分析發(fā)現(xiàn):所有的信息都在items節(jié)點(diǎn)下
          ????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
          ????????#?價(jià)格
          ????????pro_price?=?item.find_element_by_xpath('.//strong').text
          ????????#?付款人數(shù)
          ????????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("正在爬取第{}頁(yè)".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("請(qǐng)輸入你要搜索的商品:")
          ????option?=?Options()
          ????browser?=?webdriver.Chrome(chrome_options=option,
          ???????????????????????????????executable_path=r"C:\Users\cherich\AppData\Local\Google\Chrome\Application\chromedriver.exe")
          ????main()

          采集結(jié)果如下:

          數(shù)據(jù)準(zhǔn)備完成,中間從標(biāo)題里提取類別過(guò)程比較耗時(shí),建議大家直接用整理好的數(shù)據(jù)。

          大概思路是對(duì)標(biāo)題進(jìn)行分詞,命名實(shí)體識(shí)別,標(biāo)記出名詞,找出類別名稱,比如堅(jiān)果、茶葉等。

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

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

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

          1、讀取文件

          import?pandas?as?pd
          import?matplotlib?as?mpl
          mpl.rcParams['font.family']?=?'SimHei'
          from?wordcloud?import?WordCloud
          from?ast?import?literal_eval
          import?matplotlib.pyplot?as?plt
          datas?=?pd.read_csv('./年貨.csv',encoding='gbk')
          datas


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


          圖表說(shuō)明:我們可以看到詞云圖,熱門(出現(xiàn)次數(shù)最多)品類字體最大,依次是:堅(jiān)果、茶葉、糕點(diǎn)等。

          3、可視化:繪制圓環(huán)圖

          #?plt.pie(x,lables,autopct,shadow,startangle,colors,explode)
          food_type?=?datas.groupby('價(jià)格區(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('年貨價(jià)格區(qū)間占比情況',fontsize=18)
          plt.legend(food_type.index,bbox_to_anchor=(1.5,?1.0))
          plt.show()


          圖表說(shuō)明:圓環(huán)圖和餅圖類似,代表部分相對(duì)于整體的占比情況,可以看到0 ~ 200元的年貨大概33%左右,100 ~ 200元也是33%。說(shuō)明大部分的年貨的價(jià)格趨于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()


          圖表說(shuō)明:以上是店鋪按銷量排名情況,可以看到第一名是三只松鼠旗艦店,看來(lái)過(guò)年大家都喜歡吃干貨。

          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('年貨推薦購(gòu)買排行榜',fontsize=18)
          colors?=?['#F4A460','#D2691E','#CDCD00','#CD96CD','#EEE5DE',?'#EEB4B4',?'#FFA07A',?'#FFD700']
          plt.barh(foods.index,foods.values,?color=colors,height=1)
          plt.show()


          圖表說(shuō)明:根據(jù)類別銷量排名,排名第一是堅(jiān)果,驗(yàn)證了上面的假設(shè),大家喜歡吃堅(jiān)果。

          結(jié)論與建議

          淘寶熱賣年貨: 堅(jiān)果,茶葉,糕點(diǎn),餅干,糖果,白酒,核桃,羊肉,海參,枸杞;

          年貨推薦清單(按銷量):堅(jiān)果、零食、糕點(diǎn)、餅干、茶葉、糖果、松子、紅棗、蛋糕、鹵味、瓜子、牛奶、核桃;

          年貨價(jià)格參考:66%以上的年貨價(jià)格在0~200元之間;

          熱門店鋪:三只老鼠、天貓超市、百草味、良品鋪?zhàn)樱?/p>


          見(jiàn)面禮


          碼加我微信備注「三劍客」送你上圖三本Python入門電子書(shū)?



          推薦閱讀


          1. 39歲單身程序員入住養(yǎng)老院!養(yǎng)老院:院內(nèi)平均年齡瞬間年輕了

          2. 再見(jiàn) Win10!下一代操作系統(tǒng)要來(lái)了!

          3. 好氣!進(jìn)大廠被學(xué)歷卡住了...

          4. 熬夜一周整理我的數(shù)據(jù)分析學(xué)習(xí)資源


          點(diǎn)分享
          點(diǎn)收藏
          點(diǎn)點(diǎn)贊
          點(diǎn)在看









          瀏覽 67
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  欧美乱婬妺妺躁爽A片 | 国产黄色视频在线观看免费 | 911在线无码精品秘 入口楼风 | 黄色你懂的 | 97人妻精品一区二区三区 |