摘要:用戶就我們這一個宿舍而其中電影的資源則是選擇來自有大量電影電視劇信息的豆瓣。爬蟲應(yīng)對反爬蟲機(jī)制目前來說豆瓣的反爬蟲機(jī)制算是可以接受。
前言
前段時間和室友鬧劇荒,于是萌生出一種做個私人化推薦系統(tǒng)想法。(用戶就我們這一個宿舍)而其中電影的資源則是選擇來自有大量電影電視劇信息的豆瓣。
目前,電影的信息已經(jīng)抓取完畢,共有11159條JSON格式的數(shù)據(jù),內(nèi)容包括:
題目
時長
類型
導(dǎo)演
主演
地區(qū)
評分
2-3條短評
期間自己琢磨著一些推薦系統(tǒng)的算法,但又不想讓這一萬多條空閑著,于是期間跑了一個簡單的數(shù)據(jù)分析的腳本,沒有高大上的算法,只是做了簡單的統(tǒng)計。好吧,我承認(rèn)我題目起DM二字確實(shí)有標(biāo)題黨de意思。如果你還是感興趣,歡迎往下看。
目前來說豆瓣的反爬蟲機(jī)制算是可以接受。你只需做到以下兩點(diǎn)獲取信息應(yīng)該不成問題。
請求帶上頭部信息,尤其記得帶上自己的cookie。
請求次數(shù)別太頻繁,除非你的爬蟲可以破解豆瓣的驗證碼問題。
任務(wù)隊列我的爬蟲采用了廣度優(yōu)先的做法。你在獲取一個電影頁面的時候,同時會帶有同類或相似影片的連接,將這些當(dāng)成下一個訪問點(diǎn)。
在訪問的時候,你可能會遇到超時的問題,這時不要舍棄該URL,應(yīng)對捕獲超時異常后重新將URL回到任務(wù)隊列的尾部,如果你直接舍棄了這個URL,會導(dǎo)致最后的結(jié)果有嚴(yán)重的數(shù)據(jù)缺失。比如我在第一次沒考慮到這點(diǎn),就只爬取到5000多條,少了將近一半。
另外一個要考慮到的就是,你必須記錄已經(jīng)訪問過的URL,否則你的爬蟲就會一直在死循環(huán)。
做到以上,應(yīng)該就沒太大的問題了。
現(xiàn)在我們想看看演員和好片,爛片之間的關(guān)系(各選出前5名)。
現(xiàn)在以7分為標(biāo)準(zhǔn)
小于7分的
大于7分的
全部都是日本演員的名稱。這里的補(bǔ)充說明一下,因為豆瓣并無顯著信息表明是電視劇還是電影,所以
這數(shù)據(jù)在意料之外,比如說為什么好片沒有某些美國演員的名字,壞片沒有某些演員的名字,都可能是因為數(shù)據(jù)集中不僅僅是電影信息,同時混雜了大量的日劇信息有關(guān)。
不過當(dāng)我把評價標(biāo)準(zhǔn)降低到5分時倒是發(fā)生了好玩的事情。
大于5分的
可以說,變化不算特別的大,然后我們再看看小于5分的,前5名演員
呵呵……
然后我們再來看看在5分的情況下,地區(qū)與好片,爛片的關(guān)系。
先來看好的
這張圖就有些符合我們的預(yù)期了,接下來再看看壞的。
我只能說這個更是在意料之中了。就個人感受來說,國產(chǎn)雖然近年有所好轉(zhuǎn),不過明顯還得繼續(xù)努力……
接下來可以看看類型和影片時長的關(guān)系,在每個時間段中,選出前5名做代表。
每個時間段中,選出數(shù)量最多的前五名,制成餅狀圖,一目了然??梢园l(fā)現(xiàn)其實(shí)每個時間段中劇情這個類別都是占了最大份額,平??雌臅r候就感覺劇情這個分類莫名其妙,你要我說,我也實(shí)在說不出啥這類型片有啥特征。
后話在知乎的回答
其實(shí)我還做了,像導(dǎo)演和好片爛片的關(guān)系,時長和地區(qū)的關(guān)系等等,這里礙于篇幅,不一一舉例了,感興趣的可以到我的github上獲取爬蟲和數(shù)據(jù)分析的腳本。
github地址
這個項目會記錄我學(xué)習(xí)機(jī)器學(xué)習(xí)和數(shù)據(jù)挖掘這個過程的一些小作品,關(guān)于github上的BetaMeow的介紹可以看這里,至于本文說的內(nèi)容在DouBanMovie的目錄下。
如果你也有ML或DM的作品或小項目,歡迎推薦給我,我們可以互相給出友情鏈接,互相交流學(xué)習(xí)。如果你只是單純對我的項目感興趣,也歡迎watch或star支持一下,謝謝大家。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/37921.html
摘要:前言在上篇文章豆瓣電影,電視劇實(shí)戰(zhàn)中提及到,我和室友們產(chǎn)生了劇荒,萌生出要做一個個人用的推薦系統(tǒng),解決劇荒的問題的想法,經(jīng)過一輪的死纏爛打,這個個人推薦系統(tǒng)終于成型了。 前言 在上篇文章豆瓣電影,電視劇DM實(shí)戰(zhàn)中提及到,我和室友們產(chǎn)生了劇荒,萌生出要做一個個人用的推薦系統(tǒng),解決劇荒的問題的想法,經(jīng)過一輪的死纏爛打,這個個人推薦系統(tǒng)終于成型了。 今天來分享一下心得,對此感興趣的朋友可以自...
摘要:首發(fā)于我的博客線程池進(jìn)程池網(wǎng)絡(luò)編程之同步異步阻塞非阻塞后端掘金本文為作者原創(chuàng),轉(zhuǎn)載請先與作者聯(lián)系。在了解的數(shù)據(jù)結(jié)構(gòu)時,容器可迭代對象迭代器使用進(jìn)行并發(fā)編程篇二掘金我們今天繼續(xù)深入學(xué)習(xí)。 Python 算法實(shí)戰(zhàn)系列之棧 - 后端 - 掘金原文出處: 安生??? 棧(stack)又稱之為堆棧是一個特殊的有序表,其插入和刪除操作都在棧頂進(jìn)行操作,并且按照先進(jìn)后出,后進(jìn)先出的規(guī)則進(jìn)行運(yùn)作。 如...
閱讀 3776·2021-11-11 11:00
閱讀 2245·2021-10-08 10:05
閱讀 2945·2021-10-08 10:04
閱讀 3277·2021-09-30 09:48
閱讀 3973·2021-09-27 14:10
閱讀 1785·2021-09-09 09:33
閱讀 2185·2019-08-30 15:55
閱讀 1662·2019-08-30 13:53