python爬取百部電影數據,我分析出了一個殘酷的真相

2019年就這麼匆匆過去了,就在前幾天國家電影局發佈了2019年中國電影市場數據,數據顯示去年總票房爲642.66億元,同比增長5.4%;國產電影總票房411.75億元,同比增長8.65%,市場佔比 64.07%;城市院線觀影人次17.27億,同比增長0.64%。

看上去似乎是一片大好對不對?不過作爲一名嚴謹求實的數據分析師,我從官方數據中看出了一點端倪:國產票房增幅都已經高達8.65%了,爲什麼觀影人次增長不足1%?

到底爲什麼會出現這樣的現象,最好的辦法就是從數據中找答案。我們說幹就幹,按照老規矩,先用python爬取數據、再用BI進行數據分析,最終事情的真相就會顯現在我們面前。

一、分析目的和分析指標

首先明確我們數據分析的目的,根據2019年電影的數據分析國內電影市場,主要是爲了找到票房與觀影人次的關係。

怎麼去衡量一部電影的好壞呢?懂電影的人應該都知道這麼幾個指標:“電影票房”、“票房佔比”、“上座率”、“排片比”、“評分”等等,其中我們的數據源就用貓眼電影吧,但是因爲貓眼評分門檻很低,可能充斥着很多水軍,所以這次就不用“評分”這個指標了。

python爬取百部電影數據,我分析出了一個殘酷的真相

 

二、python爬取

下面就要開始爬取數據了,因爲貓眼電影的網頁結構比較簡單,爬取操作比較簡單,所以這裏我就不詳細展示了,只說幾步需要注意的地方就行。

注:源代碼可以在後臺私信回覆我 “電影” 獲得!

1、先看看結構

從貓眼電影上可以看到我們要爬取的網頁,首先要提取出這個網頁的信息,在瞭解了大體的情況之後,就右鍵選擇查看網頁的源代碼,看一下我們需要爬取的數據信息在源代碼中的什麼地方。

 

python爬取百部電影數據,我分析出了一個殘酷的真相

 

2、僞裝成瀏覽器進行數據請求

這個方法就是老生常談的事情了,這裏不細講了,在發送請求前加上headers參數即可。

python爬取百部電影數據,我分析出了一個殘酷的真相

 

3、提取數據

貓眼裏的電影票房等都是加密後的字體,因此我們需要解密字體。雖然字符的編碼是變化的,但是對象是不變的。那麼我們可以通過第一次下載一個字體文件origin.ttf,並把對應編碼的字體寫出來,當第二次從網上重新下載一個字體文件online_base64.ttf 的時候,可以對比對象信息,如果對象是一樣的,那麼就把第一次編碼對應的文字賦值給第二次的編碼,這樣即可。

python爬取百部電影數據,我分析出了一個殘酷的真相

 

4、主程序調用保存在excel中

首先需要建立一個空列表,將所有的數據添加到裏面去。在之前的提取數據那個函數的時候,將print(data),改寫成yield data,將所有的數據添加到一個列表之後就可以保存數據了。

python爬取百部電影數據,我分析出了一個殘酷的真相

 

5、需要注意的地方

  • 下載一個基本字體路徑,找到它對應的數字及其編碼
  • 每一次爬取網頁時,都要先下載該網頁的字體文件,然後與基本字體文件作對比,獲得爬取網頁的數字對應編碼。

三、BI分析

有了源文件,我們就可以進行BI分析了,至於爲什麼不用python是因爲比較麻煩,像我們如果要做二八分析模型,代碼寫起來還是比較麻煩的,日常共工作中不太能滿足需求。

所以一般來說我現在都是用專業的BI工具進行數據分析。目前市場上的BI工具十分繁多,但是性能也參差不齊,這裏我就以國產BI工具的優秀代表FineBI爲例。

注:想要獲取finebi下載地址,可以後臺私信回覆“電影”獲得!

1、數據連接

首先導入我們需要分析的數據,finebi可以連接Excel,CSV,XML,以及各類數據庫,這裏因爲有了python爬取到的excel表,所以直接選擇excel導入即可。

python爬取百部電影數據,我分析出了一個殘酷的真相

 

2、數據加工

我們爬取到的數據可能需要第二次加工,比如髒數據處理、數據合併、過濾等等,FineBI是通過自助數據集的方式,根據需求對原數據進行再加工處理,新建一個用於分析的數據集,再處理包括選擇字段、過濾、分組彙總、新增列、字段設置、排序、合併的操作。

python爬取百部電影數據,我分析出了一個殘酷的真相

 

3、數據可視化

因爲本次涉及到的指標比較簡單,所以基本通過FineBI拖拽數據字段即可呈現可視化。

python爬取百部電影數據,我分析出了一個殘酷的真相

 

四、結論分析

不說廢話,先放結論:

  • 國內電影市場接近飽和,今年的成績是虛假繁榮;
  • 頭部效應加劇,大多數電影票房慘淡,市場成績不佳;
  • 票房的增長基本是靠電影價格拉動起來的,觀影人次基本沒有增長,電影寒冬到來;

1、票房排名前二十的電影

python爬取百部電影數據,我分析出了一個殘酷的真相

 

今年票房前二十名中一半以上都是國產電影,看似繁榮,但其實從上圖的區間柱狀圖中能夠看出,《哪吒》、《流浪地球》、《復聯4》三部電影屬於第一梯隊,票房在40億以上;《我和我的祖國》、《中國機長》、《瘋狂的外星人》、《海王》屬於第二梯隊,票房在20-30億左右;剩下的電影中基本在20億以下,排名20的《銀行補習班》只有8億。

整體來說,去年國內電影市場爆款較多,但是整體呈現階梯狀,斷崖較多,大部分集中於前五名之中,大體上符合二八法則。

2、票房的帕累託模型

爲了搞清是否真的符合帕累托法則,我特意用FineBI加入了一條票房累積百分比:

python爬取百部電影數據,我分析出了一個殘酷的真相

 

結果很明顯,排名前20%的電影占據了整個市場80%以上的票房總量,也就是說,去年國內市場的票房總量基本上靠着幾大爆款電影撐起來的,票房分佈越來越集中絕對不是一件好事,這意味大多數的電影成績慘淡,根本沒有生存空間。

3、票房佔比、排片率與票房的關係

  • 票房佔比:電影票房收入佔總收入的比例,票房佔比越高,說明電影質量越好,人們越想看;
  • 排片率:排片率高、票房低就是爛片,而排片率低、票房高的電影纔是黑馬;

python爬取百部電影數據,我分析出了一個殘酷的真相

 

這張圖我們可以跟排名前二十的柱狀圖對比一下,真正意義上高票房、高票房佔比、低排片率的黑馬電影有哪些呢?答案只有一部《流浪地球》。

《哪吒》的排片率高是因爲上映同期沒有什麼優質電影與之競爭,所以《哪吒》的成功一半要歸功於人和,一半要歸功於天時;《瘋狂外星人》的表現中規中矩,《海王》屬於典型的商業片,《我和我的祖國》屬於特殊情況,不能一概而論。

4、上座率與票房的關係

  • 上座率:即一部影片獲得觀衆人次的多少,優秀的影片上座率就高,反之則低

python爬取百部電影數據,我分析出了一個殘酷的真相

 

爲了方便對比,我在圖中加入了一條平均上座率的警戒線,其中上座率最高的是《我和我的祖國》、《我爲你犧牲》,原因就不說了,大家應該都明白;其中比較奇怪的是《飛馳人生》、《新喜劇之王》、《攀登者》,上座率非常高,票房成績卻不如人意,應該是得益於其導演、主演的號召力。

《流浪地球》上座率在平均值以上,無論從哪個角度看都是一部好電影,無懈可擊。

值得欣慰的是,上座率排名靠前的基本都是國產電影,看的出來國外電影尚不能滿足大多數人的口味。

5、做點其他分析

python爬取百部電影數據,我分析出了一個殘酷的真相

電影類型與上座率的關係

喜劇電影一騎絕塵,動畫電影黑馬突起,科幻電影方興未艾,驚悚、懸疑、歷史等小衆題材的電影仍然慘淡無比。

 

python爬取百部電影數據,我分析出了一個殘酷的真相

顏色越深代表上座率越高,字體越大代表票房越高

陳凱歌現在雖然經常被爛片之王所詬病,但是不得不說他的成績還是很不錯的,另外像甯浩、韓寒、郭帆、陳國輝等人都是國產電影的希望。

最後別忘了,python源代碼和BI下載地址,都可以私信我“電影”獲得!

發佈了424 篇原創文章 · 獲贊 2872 · 訪問量 91萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章