前段時間和室友鬧劇荒,因而萌生出一種作個私人化推薦系統想法。(用戶就咱們這一個宿舍)而其中電影的資源則是選擇來自有大量電影電視劇信息的豆瓣。git
目前,電影的信息已經抓取完畢,共有11159條JSON格式的數據,內容包括:github
題目算法
時長segmentfault
類型cookie
導演機器學習
主演學習
地區spa
評分3d
2-3條短評code
期間本身琢磨着一些推薦系統的算法,但又不想讓這一萬多條空閒着,因而期間跑了一個簡單的數據分析的腳本,沒有高大上的算法,只是作了簡單的統計。好吧,我認可我題目起DM二字確實有標題黨de意思。若是你仍是感興趣,歡迎往下看。
目前來講豆瓣的反爬蟲機制算是能夠接受。你只需作到如下兩點獲取信息應該不成問題。
請求帶上頭部信息,尤爲記得帶上本身的cookie。
請求次數別太頻繁,除非你的爬蟲能夠破解豆瓣的驗證碼問題。
個人爬蟲採用了廣度優先的作法。你在獲取一個電影頁面的時候,同時會帶有同類或類似影片的鏈接,將這些當成下一個訪問點。
在訪問的時候,你可能會遇到超時的問題,這時不要捨棄該URL,應對捕獲超時異常後從新將URL回到任務隊列的尾部,若是你直接捨棄了這個URL,會致使最後的結果有嚴重的數據缺失。好比我在第一次沒考慮到這點,就只爬取到5000多條,少了將近一半。
另一個要考慮到的就是,你必須記錄已經訪問過的URL,不然你的爬蟲就會一直在死循環。
作到以上,應該就沒太大的問題了。
如今咱們想看看演員和好片,爛片之間的關係(各選出前5名)。
如今以7分爲標準
小於7分的
大於7分的
所有都是日本演員的名稱。這裏的補充說明一下,由於豆瓣並沒有顯著信息代表是電視劇仍是電影,因此
這數據在乎料以外,好比說爲何好片沒有某些美國演員的名字,壞片沒有某些演員的名字,均可能是由於數據集中不只僅是電影信息,同時混雜了大量的日劇信息有關。
不過當我把評價標準下降到5分時卻是發生了好玩的事情。
大於5分的
能夠說,變化不算特別的大,而後咱們再看看小於5分的,前5名演員
呵呵……
而後咱們再來看看在5分的狀況下,地區與好片,爛片的關係。
先來看好的
這張圖就有些符合咱們的預期了,接下來再看看壞的。
我只能說這個更是在乎料之中了。就我的感覺來講,國產雖然近年有所好轉,不過明顯還得繼續努力……
接下來能夠看看類型和影片時長的關係,在每一個時間段中,選出前5名作表明。
每一個時間段中,選出數量最多的前五名,製成餅狀圖,一目瞭然。能夠發現其實每一個時間段中劇情這個類別都是佔了最大份額,日常看片的時候就感受劇情這個分類莫名其妙,你要我說,我也實在說不出啥這類型片有啥特徵。
其實我還作了,像導演和好片爛片的關係,時長和地區的關係等等,這裏礙於篇幅,不一一舉例了,感興趣的能夠到個人github上獲取爬蟲和數據分析的腳本。
這個項目會記錄我學習機器學習和數據挖掘這個過程的一些小做品,關於github上的BetaMeow
的介紹能夠看這裏,至於本文說的內容在DouBanMovie
的目錄下。
若是你也有ML或DM的做品或小項目,歡迎推薦給我,咱們能夠互相給出友情連接,互相交流學習。若是你只是單純對個人項目感興趣,也歡迎watch或star支持一下,謝謝你們。