Python資料視覺化 豆瓣電影TOP250

2021-09-22 07:46:13 字數 2683 閱讀 3760

豆瓣電影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 scrapy

class 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...