豆瓣電影top250榜單想必大家都不陌生,上榜的電影都是經過時間的沉淀留下來比較經典企巢。本次教程就是利用requests庫實現對于top250榜單電影數據爬取,并對爬取的數據繪制圖表進行可視化让蕾,做簡單的數據分析浪规。文章將分為兩個部分:top250數據爬取和數據可視化或听。
top250數據爬取:
首先笋婿,打開豆瓣電影top250的網頁誉裆,利用開發(fā)者工具對頁面的數據進行簡單的分析,用開發(fā)者選擇項來選取要提取的數據(電影名字缸濒、上映時間足丢、上映地區(qū)、評分庇配、電影主題標語等等)
其次斩跌,要爬取全部數據,需要實現翻頁功能讨永;這里提供兩種思路:第一種是每個頁面的url是類似的滔驶,都有相似的構造結構,因此這里可以利用for循環(huán)實現翻頁操作卿闹;第二種因為每一頁(除了最后一頁)都會有下一頁標簽揭糕,可以提取網頁源碼中標簽隱藏的 鏈接進而訪問。這里我采取的是第一種方式锻霎。
進而著角,后續(xù)我需要關于一些參演演員的名字,所以需要訪問每部電影的二級網頁旋恼,提取每部電影的導演和參演人員吏口;
最后,爬取的時候加一下相應的headers(User-Agent冰更、Cookies)产徊,設置一下爬取頻率(time.sleep(5))會更為保險一點。最終爬取結果如下:
數據可視化
為了后續(xù)更好實現數據可視化蜀细,我將取的數據儲存到mongodb中舟铜,將以電影評分、上映時間奠衔、上映地區(qū)谆刨、類型......方面來對這250部電影進行簡單的數據分析,這里實現可視化利用的是pyecharts包归斤。
這些經典電影的上映時間基本是從1990年開始到現在痊夭,每年都會產生一些不錯的電影,其中2010年上映的好片數量最多脏里,有13部之多(很尷尬她我,圖中的標題寫錯了)。
產生這個現象可能取決于兩個方面,一方面是源于制作電影技術的發(fā)展番舆,不僅在場景轉換根吁,還是特效加成方面都能給片子加一些不一樣的感覺;第二方面就是娛樂占比在人類社會中越來越大合蔽,當我們物質基本需求得到滿足時,就要轉向精神方面的層次介返,而對于電影的質量的追求也越來越高拴事。
這張圖展示的時豆瓣平臺給某一部電影評價的人數統(tǒng)計,這里我篩選出來了評價人數最多的20部的電影圣蝎;位居第一的是《肖申克的救贖》刃宵,共有1430010位網友評價;位于第最后一名的時《阿凡達》共有750249位網友評價驾胆。
從爬取的數據中對這些經典電影的導演做了一個簡單的統(tǒng)計放坏,對于導演作品數量進行了一個排名玫荣,取了前十名;本人對于導演大咖并不熟悉坦袍,在這個名單中只認識3名:宮崎駿作品7部(很牛),王家衛(wèi)5部(了不起)等太,李安4部(厚積薄發(fā))捂齐。
上圖是根據演員的參演作品數量做了一個“漏斗圖”,在這250部經典電影中缩抡,參演作品數量最多就是哥哥張國榮奠宜,一共8部之多,我們這個時代的偶像瞻想,接下來就是張曼玉压真,參演過7部,而星爺跟劉嘉玲一共參演過4部蘑险,在當今時代演員的標桿滴肿。
在獲取電影來源國家時,有些電影是兩個或兩個國家以上合拍的漠其,所以在統(tǒng)計時嘴高,每當涉及一個國家時我都會對這個國家出的作品加一。電影數量最多的產源地是美國和屎,共有138部拴驮,一方面時這個國家處于一個多元形態(tài),能夠碰撞不一樣的題材柴信,另一方面是美國的電影制作技術較為成熟套啤,能夠產出刺激視覺的片子;排在其后的是日本、英國等潜沦。
從上圖我們可以了解到愛情題材的電影一直影迷的最愛萄涯,壓力負行的時代喜劇題材的電影也變得越來越受歡迎,相對來說科幻跟戰(zhàn)爭的題材就不太符合大眾的口味(在這里猜測一下唆鸡,具有理性思維的工科男性還是比較喜歡這一題材)涝影。
最后以一張詞云圖來對這篇文章做個結尾,這張詞云圖收錄的是top250電影的全部qoute争占,也就是主題燃逻,這張圖并不是借助python模塊,是在wordArt網站上繪制的臂痕。
文中涉及所有源碼的獲取方式伯襟,關注公眾號:程序員大飛;后天回復關鍵詞:豆瓣top250即可握童。