美食視頻作者徐大sao在網際網路上很受歡迎,平時我也非常關注他。每天都吃一頓好的,那麼他到底吃吃了哪些好吃的?在日常閱讀中,我們經常遇到一些詞雲圖片,看上去很炫酷,也能很直觀的反應關鍵詞的分布情況。本文我們將帶著任務去學習,分析一 下徐大sao到底吃了哪些好吃的,給好吃的排個名。
一、獲取徐大sao所有投稿視頻標題
想知道徐大sao每天吃什麼最多,我們可以通過標題直接看到,比如最近一期的」用sao式老方做一盆熱乾麵,一斤面不夠吃,醬香濃鬱,一口就上癮」,我們能夠看出他吃的是熱乾麵。對應的,只需要抓取徐大sao近年來所有的投稿視頻,我們就能分析出他吃什麼好吃的最多。
打開徐大sao的主頁,點擊「投稿」按F12來找一下接口:
我們可以點擊XHR(xhr,全稱為XMLHttpRequest,用於與伺服器交互數據是ajax功能實現)看看有沒有接口,經過尋找發現有可能存在接口。
右鍵在新的窗口中打開(右鍵點擊Open in new tab),看看是不是:
下圖可以看到,的確獲得了視頻的標題,那麼藍框中的參數是什麼意思呢?
經過觀察,不難發現,在徐大sao的視頻頁面中,每行有5個視頻,共有6列,一共是30個視頻。所以我們能夠大膽的猜測,ps=30這個參數,應該就是目前視頻標題數量。
那麼pn呢,默認pn=1,翻頁不難發現,pn隨著翻頁而改變,pn就是page number的縮寫,一共是17頁面。
那就簡單了,我們只需要get請求17次就能抓取到所有數據了。
數據的清洗:
上面get獲取到的json數據,不光是標題,還有簡介,評論數等各種信息,我們這裡格式化一下json看一下json數據格式,方便我們清洗。
用json數據格式化工具格式化之後,可以看到標題title在data的list下面的vlist裡面。
碼代碼:
經過我們的分析,短短幾行代碼就能獲取到第一頁的所有視頻標題:
我們只需要優化一下代碼,做個循環,就能獲取到徐大sao所有的視頻標題:
這樣我們就得到了,所有的視頻標題,並存在了一個列表中。
二、安裝所需模塊
俗話說,磨鐮不誤砍柴工。我們現在安裝一下jieba模塊用來分詞,統計詞頻,用wordcloud模塊來生成詞雲。
安裝jieba模塊,只需要執行pip install jieba
安裝wordcloud模塊對於新手來說是個問題,如果直接執行pip install wordcloud,windows下會報錯,我們用wheel方式來安裝。
首先打開 lfd.uci.edu/~gohlke/pythonlibs/ ,然後按下Ctrl +F 輸入 wordcloud並搜索。
找到合適自己的版本並下載,我這裡安裝的是python 64位的 3.7版本,那麼就下載wordcloud-1.6.0-cp37-cp37m-win_amd64.whl。
然後執行pip install wheel安裝wheel模塊,
接著執行 pip install wordcloud-1.6.0-cp37-cp37m-win_amd64.whl注意替換成你下載的模塊:
三、開始分析
jieba分詞模塊基礎功能
輸出:用sao式老方做一盆熱乾麵 ,一斤面不夠吃 ,醬香濃鬱,一口就上癮
詞雲模塊的基礎功能,將上面一句話生成詞雲看看:
結果為:
OK,迫不及待,我們直接分析,所有標題的結果吧!
得到結果,字體越大,頻率越高。不難發現,大sao最喜歡吃大蒜米飯,這些,並且非常過癮。
但是這裡面有各種各樣的詞彙,我們想知道徐大sao吃了哪些好吃的,可以將名詞選出來。
案例:
那麼n就代表名詞,我們用名詞做一個詞雲。
代碼如下:
OK,一目了然,到這裡我們看到,大sao吃的最多的就是大蒜,米飯,麵條,各種面。看來「碳水教父」的稱號果然名不虛傳啊。
那要是給各個詞排個名次,統計出現的具體次數該怎麼做呢:
輸出結果如下:
可以看到,大蒜,出現了足足134次,遠遠超過第二名!!!其次是米飯,辣椒,火鍋,麵條。
真是離不開,辣和碳水。
會了這種方法,你就可以為你喜歡的美食博主做個分析啦!