大家好呀,我是你們親愛(ài)的 w3cschool 小編。
最近,最火的電視劇莫過(guò)于《大秦賦》了,小編也是一直在追,12 月 1 號(hào)開(kāi)播,那口碑杠杠的??扇^(guò)后,小編那是直呼好家伙啊,我****。相信看過(guò)小伙伴們和我是一樣的,直呼好家伙了。該劇在豆瓣上的評(píng)分也由最初的 8.9 分,降到了現(xiàn)今的 6.0 分,可謂是高走低開(kāi),觀(guān)者全程**。
于是乎小編忍不住的用 Python 爬取了豆瓣上《大秦賦》的評(píng)論相關(guān)數(shù)據(jù),進(jìn)行了一波分析,也給大家分享一下思路。
一、數(shù)據(jù)爬取
既然要做分析,那肯定得先搞到數(shù)據(jù)。小編選擇的是豆瓣網(wǎng)下手,原因嘛,很簡(jiǎn)單,它家數(shù)據(jù)全吶,反扒難度還不大。我們主要要獲取的信息為評(píng)論的星級(jí)以及評(píng)論時(shí)間,順帶將評(píng)論者及評(píng)語(yǔ)咱也一起扒拉下來(lái)。
技術(shù)方面,小編用的是requests、bs4、pandas、time、matplotlib五個(gè)庫(kù),工具為Pychram和Anaconda jupyter nootbook。
開(kāi)始編寫(xiě)前我們先來(lái)看下網(wǎng)站頁(yè)面url變化規(guī)律:
https://movie.douban.com/subject/26413293/comments?status=P
https://movie.douban.com/subject/26413293/comments?start=20&limit=20&status=P&sort=new_score
https://movie.douban.com/subject/26413293/comments?start=40&limit=20&status=P&sort=new_score
小伙伴們看出來(lái)了么,不難發(fā)現(xiàn)頁(yè)面變換中僅有 start 是不一樣的,所以在后續(xù)翻頁(yè)操作中我們只需要修改 start 參數(shù)即可,那么小編在這給大家一個(gè)問(wèn)題,首頁(yè) url 如何解決呢?
關(guān)于反扒:
對(duì)于豆瓣的爬取措施,其實(shí)找到真實(shí)的短評(píng)鏈接,是極其容易的。但是小編建議大家要登錄后攜帶 cookie 信息進(jìn)行數(shù)據(jù)的爬取,不然豆瓣會(huì)識(shí)別你為爬蟲(chóng)封禁你的 ip,至于該放什么小編給大家一個(gè)參考:
headers = {
"Accept":"application/json, text/plain, */*",
"Accept-Language":"zh-CN,zh;q=0.9",
"Connection":"keep-alive",
"Host":"movie.douban.com",
"User-Agent":'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36',
"Cookie":'這里是你自己的cookie'
}
那么 cookie 信息在哪呢,我們打開(kāi)網(wǎng)頁(yè)摁下 F12,或者鼠標(biāo)右鍵選擇檢查,點(diǎn)擊 NetWork 然后刷新一下界面,找到刷新出來(lái)的第一個(gè)信息,然后扒拉一下就能找到啦。
補(bǔ)充一點(diǎn):小編本打算將《大秦賦》的所有短評(píng)都給扒拉下來(lái)的,可最終也只爬取到了 500 條,這應(yīng)該也是豆瓣的反扒措施(有大神的話(huà),可以下去研究一下如何破解,然后告訴小編)。
二、數(shù)據(jù)處理
1、剔除重復(fù)值
采用如下命令查看重復(fù)項(xiàng)數(shù)量:
np.sum(df.duplicated()) #計(jì)算重復(fù)數(shù)量
采用如下命令刪除所有變量都重復(fù)的行:
df.drop_duplicates(keep = False) #刪除所有變量都重復(fù)的行
結(jié)果如下:
可以看出,得到的結(jié)果還是很漂亮的。
三、可視化分析
俗話(huà)說(shuō):“字不如表,表不如圖”。我們所爬取到的數(shù)據(jù),最終還是要有一個(gè)可視化的效果呈現(xiàn),才能夠讓我們分析出數(shù)據(jù)背后所存在的規(guī)律,讓我們有一個(gè)清晰的認(rèn)識(shí)。下面小編從以下幾個(gè)方面來(lái)對(duì)我們所獲取到的數(shù)據(jù)進(jìn)行數(shù)據(jù)可視化分析。
1、評(píng)論數(shù)隨時(shí)間的變化趨勢(shì)
從圖中我們不難看出:短評(píng)數(shù)量在 12 月 4 日之前,一直處于上升趨勢(shì),在 12 月 4 日達(dá)到頂峰。和小編的觀(guān)看情感變化是如出一轍,從期待到失望。
2、星級(jí)評(píng)分的餅圖
從圖中可以看出:大家對(duì)于該劇的評(píng)價(jià)還是很低的,1 星和 2 星基本占據(jù)了整個(gè)餅圖,也就是說(shuō)該劇并沒(méi)有得到大家的認(rèn)可。好了不多說(shuō)了小編就是那個(gè)一星貢獻(xiàn)者。
推薦好課:
Python 數(shù)據(jù)分析入門(mén)案例講解