Python爬取《流浪地球》豆瓣影評(píng)與數(shù)據(jù)分析

大年初一《流浪地球》全國(guó)上映。在豆瓣評(píng)分上,首日開(kāi)分站穩(wěn)8分以上,延續(xù)了之前點(diǎn)映的高口碑。微博上跟著出現(xiàn)吳京客串31天與投資6000萬(wàn)的熱搜。知乎上關(guān)于“如何評(píng)價(jià)劉慈欣小說(shuō)改編的同名電影《流浪地球》”的回答引起了眾多人關(guān)注,包括該片導(dǎo)演郭帆的最高贊回答。

本篇文章爬取了豆瓣網(wǎng)上《流浪地球》的部分影評(píng),并進(jìn)行數(shù)據(jù)分析及可視化處理。下面是爬取分析的整個(gè)過(guò)程,讓我們愉快開(kāi)始吧!

一、網(wǎng)頁(yè)分析

豆瓣網(wǎng)從2017年10月開(kāi)始全面禁止爬取數(shù)據(jù)。在非登錄狀態(tài)下僅僅可以爬取200條短評(píng),登錄狀態(tài)下僅可以爬取500條數(shù)據(jù)。白天一分鐘最多可爬40次,晚上60次,超過(guò)次數(shù)就會(huì)封IP地址。小本聰爬取數(shù)據(jù)獲得400條時(shí)被封了IP,賬號(hào)被強(qiáng)制下線封號(hào),之后發(fā)短信賬號(hào)恢復(fù),因此不建議多次爬?。硗?,有很多解決方法,請(qǐng)自行搜索)。

獲取對(duì)象

評(píng)論用戶

評(píng)論內(nèi)容

評(píng)分

評(píng)論日期

用戶所在城市

值得注意的是,在地址欄我們會(huì)發(fā)現(xiàn)電影名字的ID編號(hào)為26266893(其他電影只需更換ID即可),并且每頁(yè)有20條短評(píng),因此我爬取了20頁(yè)。評(píng)論頁(yè)面沒(méi)有用戶所在城市,需要進(jìn)入用戶頁(yè)面獲取信息。

二、數(shù)據(jù)獲取與存儲(chǔ)

1?獲取cookies

小本聰用的是Chrome瀏覽器,Ctrl+F12進(jìn)入開(kāi)發(fā)者工具頁(yè)面。F5刷新一下出現(xiàn)數(shù)據(jù),找到cookies、headers。

2 加載headers、cookies,并用requests庫(kù)獲取信息

3 解析需求數(shù)據(jù)

此處運(yùn)用xpath解析。發(fā)現(xiàn)有的用戶雖然給了評(píng)論,但是沒(méi)有給評(píng)分,所以score和date這兩個(gè)的xpath位置是會(huì)變動(dòng)的。因此需要加判斷,如果發(fā)現(xiàn)score里面解析的是日期,證明該條評(píng)論沒(méi)有給出評(píng)分。

foriinrange(1,21):#?每頁(yè)20個(gè)評(píng)論用戶

name?=?x.xpath('//*[@id="comments"]/div[{}]/div[2]/h3/span[2]/a/text()'.format(i))

#?下面是個(gè)大bug,如果有的人沒(méi)有評(píng)分,但是評(píng)論了,那么score解析出來(lái)是日期,而日期所在位置spen[3]為空

4 獲取電影名稱

從url上只能獲取電影的subject的8位ID數(shù)值,引起需要自行解析網(wǎng)頁(yè)獲取ID號(hào)對(duì)應(yīng)的電影名稱,該功能是后期改進(jìn)添加的,因此為避免現(xiàn)有代碼改動(dòng)多(偷個(gè)懶),采用了全局變量賦值給movie_name,需要注意全局變量調(diào)用時(shí),要加global聲明一下。

5 數(shù)據(jù)存儲(chǔ)

由于數(shù)據(jù)不多,選擇CSV存儲(chǔ)即可。

三、數(shù)據(jù)分析與可視化

1?獲取cookies

城市信息篩選中文字

匹配pyecharts支持的城市列表


2 基于snownlp的情感分析

snownlp主要可以進(jìn)行中文分詞(算法是Character-Based Generative Model)、詞性標(biāo)注(原理是TnT、3-gram 隱馬)、情感分析(官網(wǎng)木有介紹原理,但是指明購(gòu)物類的評(píng)論的準(zhǔn)確率較高,其實(shí)是因?yàn)樗恼Z(yǔ)料庫(kù)主要是購(gòu)物方面的,可以自己構(gòu)建相關(guān)領(lǐng)域語(yǔ)料庫(kù),替換原來(lái)的,準(zhǔn)確率也挺不錯(cuò)的)、文本分類(原理是樸素貝葉斯)、轉(zhuǎn)換拼音、繁體轉(zhuǎn)簡(jiǎn)體、提取文本關(guān)鍵詞(原理是TextRank)、提取摘要(原理是TextRank)、分割句子、文本相似(原理是BM25)【摘自CSDN】。在看此之前,建議先看一下官網(wǎng),里面有最基礎(chǔ)的一些命令的介紹。官網(wǎng)鏈接:https://pypi.org/project/snownlp/

由于snownlp全部是unicode編碼,所以要注意數(shù)據(jù)是否為unicode編碼。因?yàn)槭莡nicode編碼,所以不需要去除中文文本里面含有的英文,因?yàn)槎紩?huì)被轉(zhuǎn)碼成統(tǒng)一的編碼上面只是調(diào)用snownlp原生語(yǔ)料庫(kù)對(duì)文本進(jìn)行分析,snownlp重點(diǎn)針對(duì)購(gòu)物評(píng)價(jià)領(lǐng)域,所以為了提高情感分析的準(zhǔn)確度可以采取訓(xùn)練語(yǔ)料庫(kù)的方法。


3 評(píng)論來(lái)源城市分析

調(diào)用pyecharts的page函數(shù),可以在一個(gè)圖像對(duì)象中創(chuàng)建多個(gè)chart,只需要對(duì)應(yīng)的add即可。


4 影片情感分析

0.5以下為負(fù)面情緒,0.5以上為正面情緒??梢钥吹胶迷u(píng)還是很不錯(cuò)的,至于豆瓣上一些看衰評(píng)論只是少數(shù)。

5 電影評(píng)分走勢(shì)分析

讀取csv文件,以dataframe(df)形式保存

遍歷df行,保存到list

統(tǒng)計(jì)相同日期相同評(píng)分的個(gè)數(shù)

轉(zhuǎn)換為df格式,設(shè)置列名

按日期排序

遍歷新的df,每個(gè)日期的評(píng)分分為5種,因此需要插入補(bǔ)充缺失數(shù)值。

由于允許爬取的量少和時(shí)間問(wèn)題,部分?jǐn)?shù)據(jù)不是很明顯。但依然可以得出一些發(fā)現(xiàn)。在影片上映開(kāi)始的一周內(nèi),為評(píng)論高峰,尤其是上映3天內(nèi),這符合常識(shí),但是也可能有偏差,因?yàn)榕老x(chóng)獲取的數(shù)據(jù)是經(jīng)過(guò)豆瓣電影排序的,倘若數(shù)據(jù)量足夠大得出的趨勢(shì)可能更接近真實(shí)情況。

另外發(fā)現(xiàn),影片在上映前也有部分評(píng)論,分析可能是影院公映前的小規(guī)模試映,且這些提前批的用戶的評(píng)分均值,差不多接近影評(píng)上映后的大規(guī)模評(píng)論的最終評(píng)分 ,從這些細(xì)節(jié)中,我們或許可以猜測(cè),這些能提前觀看影片的,可能是資深影迷或者影視從業(yè)人員,他們的評(píng)論有著十分不錯(cuò)的參考價(jià)值。

6 影評(píng)詞云圖

詞云圖制作時(shí),先讀取CSV文件一dataframe形式保存,去除評(píng)論中非中文文本,選了胡歌照片作為背景,并設(shè)置了停用詞表。

可以看到高頻詞“可以”表現(xiàn)出對(duì)該片的認(rèn)可,“特效”體現(xiàn)出特效鏡頭對(duì)科幻片的重要性,“科幻電影”體現(xiàn)出影迷對(duì)科幻類電影的濃厚興趣。

以上就是本次爬取豆瓣網(wǎng)《流浪地球》短評(píng)的過(guò)程與數(shù)據(jù)分析。

微信公眾號(hào)“學(xué)編程的金融客”后臺(tái)回復(fù)“流浪地球”即可獲得源碼。

微信公眾號(hào)原文傳送門

如果您想提升自己,也歡迎加入我的知識(shí)星球:金融&編程研習(xí)社?,里面有更多資料、Python數(shù)據(jù)分析、金融、區(qū)塊鏈等干貨分享,當(dāng)然,還能賺小錢!

微信公眾號(hào)二維碼
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容