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

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

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

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

1、分析目的和分析指標

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

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

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

2、python爬取

下面就要開始爬取數據了,由於貓眼電影的網頁結構比較簡單,爬取操做比較簡單,因此這裏我就不詳細展現了,只說幾步須要注意的地方就行。工具

注:源代碼能夠在後臺私信回覆我 「電影」 得到!

一、先看看結構性能

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

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

二、假裝成瀏覽器進行數據請求動畫

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

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

三、提取數據

貓眼裏的電影票房等都是加密後的字體,所以咱們須要解密字體。雖然字符的編碼是變化的,可是對象是不變的。那麼咱們能夠經過第一次下載一個字體文件origin.ttf,並把對應編碼的字體寫出來,當第二次從網上從新下載一個字體文件online_base64.ttf 的時候,能夠對比對象信息,若是對象是同樣的,那麼就把第一次編碼對應的文字賦值給第二次的編碼,這樣便可。

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

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

首先須要創建一個空列表,將全部的數據添加到裏面去。在以前的提取數據那個函數的時候,將print(data),改寫成yield data,將全部的數據添加到一個列表以後就能夠保存數據了。

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

五、須要注意的地方

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

3、BI分析

有了源文件,咱們就能夠進行BI分析了,至於爲何不用python是由於比較麻煩,像咱們若是要作二八分析模型,代碼寫起來仍是比較麻煩的,平常共工做中不太能知足需求。

因此通常來講我如今都是用專業的BI工具進行數據分析。目前市場上的BI工具十分繁多,可是性能也良莠不齊,這裏我就以國產BI工具的優秀表明FineBI爲例。

注:想要獲取finebi下載地址,能夠後臺私信回覆「電影」得到!

一、數據鏈接

首先導入咱們須要分析的數據,finebi能夠鏈接Excel,CSV,XML,以及各種數據庫,這裏由於有了python爬取到的excel表,因此直接選擇excel導入便可。

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

二、數據加工

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

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

三、數據可視化

由於本次涉及到的指標比較簡單,因此基本經過FineBI拖拽數據字段便可呈現可視化。

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

4、結論分析

不說廢話,先放結論:

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

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

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

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

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

二、票房的帕累託模型

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

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

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

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

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

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

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

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

四、上座率與票房的關係

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

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

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

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

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

五、作點其餘分析

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

電影類型與上座率的關係

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

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

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

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

最後別忘了,python源代碼和BI下載地址,均可以私信我「電影」得到!
相關文章
相關標籤/搜索