豆瓣電影top250,對於眾多爬蟲愛好者,應該並不陌生。
很多人都會以此作為第乙個練手的小專案。
當然這也多虧了豆瓣的包容,沒有加以太多的反爬措施,對新手比較友好。
本期通過scrapy框架,對豆瓣電影top250資訊進行爬取。
同時對獲取的資料進行視覺化分析,給大家帶來乙個不一樣的top250。
/ 01 / scrapy
之前了解了pyspider框架的使用,但是就它而言,只能應用於一些簡單的爬取。
對於反爬程度高的**,它就顯得力不從心。
那麼就輪到scrapy上場了,目前python中使用最廣泛的爬蟲框架。
當然目前我學習的都是簡單爬蟲,上述內容都是道聽途說,並不是切身體會。
scrapy的安裝相對複雜,依賴的庫較多。
不過通過度娘,最後我是成功安裝了的。放在c盤,如今我的c盤要**。
首先任意資料夾下命令列執行scrapy startproject doubantop250,建立乙個名為doubantop250的資料夾。
然後在資料夾下的py檔案中改寫程式。
進入資料夾裡,命令列執行scrapy genspider douban movie.douban.com/top250。
最後會生成乙個douban.py檔案,scrapy用它來從網頁裡抓取內容,並解析抓取結果。
最終修改程式如下。
生成的items.py檔案,是儲存爬取資料的容器,**修改如下。 import scrapyclass doubantop250item(scrapy.item):
# define the fields for your item here like:
# name = scrapy.field()
title = scrapy.field()
info = scrapy.field()
score = scrapy.field()
people = scrapy.field()
words = scrapy.field()
pass
在這個之後,還需要在settings.py檔案新增使用者**和請求延時。
最後在douban.py所在資料夾下開啟命令列,輸入scrapy crawl douban。
命令列就會顯示獲取的結果啦!!!
這裡豆瓣的資訊有unicode編碼,我也不知為何要在乙個網頁裡設定兩種編碼。
在當前資料夾命令列執行scrapy crawl douban -o douban.csv,即可輸出csv檔案。
由於在處理的時候沒有去除空格,造成有兩種編碼存在,無法通過excel檢視。
這裡就貼乙個文字文件,後續會在資料視覺化裡去除unicode編碼。
/ 02 / 資料視覺化
01 電影上映年份分布
這裡可以看出豆瓣電影top250裡,電影的上映年份,多分布於80年代以後。
其中有好幾年是在10部及以上的。
02 中外電影上映年份分布
明顯感受到了國產電影和國外電影的差距,90年代還行,還能過過招。
越往後,國產電影就基本就沒有上榜的。
每年電影出得倒是不少,真正***的又能有幾部呢?
今天剛好看到新周刊的推文「2023年10大爛片」。
影評人周黎明:如果一部影片既沒有表達,也沒有最基本的技術水準,那應該是最徹底的爛片。
講道理,國產爛片還真不少...
03 中外電影評分情況
通過上張圖,我們知道國外電影是佔據了榜單的大多數。
不過這裡評分情況,倒是倍感欣慰,說明國產電影中的精品也不錯,和國外電影並沒有太大的差距。
只是這些影片貌似有點老了...
04 電影數top10
美國遙遙領先,中國位居其中。
在我的那篇「2023年電影分析」中,中國目前可是個電影高產國,結果呢...
香港都比內地的多。這裡不得不佩服90,00年代的香港影業,確實很強!
05 電影評分分布
大多分布於「8.5」到「9.2」之間。最低「8.3」,最高「9.6」。
讓我們來看看人氣最高的有哪些影片,你又看過幾部呢?
記得上學的時候,時間多。我根據imdbtop250,看了榜上大部分的電影。
於是乎豆瓣電影這個top10,我也全看過了,都是一些有故事的電影。
07 排名評分人數三維度
總的來說,排名越靠前,評價人數越多,並且分數也越高。
08 年份評分人數三維度
這裡就更加明顯看出榜單上電影分布情況,大部分都是80年代以後的。
在90年代有個小高峰,不僅評價高,人氣還高。
往後的資料就相對平穩,變化不是太大。
09 電影型別圖
和我之前「2023年電影分析」比較一下,發現榜單裡「動作」片減少不少,其他差別不大。
這算不算是間接說明國人更喜歡視覺上的東西呢?
/ 03 / 總結
本次只是乙個簡單的scrapy操作,目的就是簡單了解一下它的使用。
以後或許會更深入去學習scrapy框架,所以慢慢等小f填坑吧!
Python 資料視覺化
資料視覺化指的是通過視覺化表示來探索資料,它與資料探勘緊緊相關,而資料探勘指的是使用 來探索資料集的規律和關聯。資料集可以是用一行 就能表示的小型數字列表,也可以是數以吉位元組的資料。漂亮地呈現資料關乎的並非僅僅是漂亮的。以引人注目的簡潔方式呈現資料,讓人能夠明白其含義,發現資料集中原本未意識到的規...
資料視覺化 什麼是資料視覺化
資料對應的英文單詞是data,從資訊獲取的角度看,資料是對目標觀察和記錄的結果,是現實世界中的時間 地點 事件 其他物件或概念的描述。不同學者對資料的作用也給出不同的定義,大致分為以下3類 視覺化對應的兩個英文單詞 visualize和visualization。visualize是動詞,描述 生成...
Python資料視覺化總結
用python完成資料分析後,如何把結果呈現出來,比如畫乙個吸引人注意的圖表相當重要。當你探索乙個資料集,需要畫圖表,圖表看起來令人愉悅是件很高興的事。在給你的觀眾交流觀點,給領導匯報工作時,視覺化同樣重要,同時,也很有必要去讓圖表吸引注意力和印入腦海裡。在python中numpy,pandas,m...