2019年就这么匆匆过去了,就在前几天国家电影局发布了2019年中国电影市场数据,数据显示去年总票房为642.66亿元,同比增长5.4%;国产电影总票房411.75亿元,同比增长8.65%,市场占比 64.07%;城市院线观影人次17.27亿,同比增长0.64%。

看上去似乎是一片大好对不对?不过作为一名严谨求实的数据分析师,我从官方数据中看出了一点端倪: 国产票房增幅都已经高达8.65%了,为什么观影人次增长不足1%?

到底为什么会出现这样的现象,最好的办法就是从数据中找答案。我们说干就干,按照老规矩,先用python爬取数据、再用BI进行数据分析,最终事情的真相就会显现在我们面前。

一、分析目的和分析指标

首先明确我们数据分析的目的,根据2019年电影的数据分析国内电影市场,主要是为了找到票房与观影人次的关系。

怎么去衡量一部电影的好坏呢?懂电影的人应该都知道这么几个指标:“电影票房”、“票房占比”、“上座率”、“排片比”、“评分”等等,其中我们的数据源就用猫眼电影吧,但是因为猫眼评分门槛很低,可能充斥着很多水军,所以这次就不用“评分”这个指标了。


二、python爬取

下面就要开始爬取数据了,因为猫眼电影的网页结构比较简单,爬取操作比较简单,所以这里我就不详细展示了,只说几步需要注意的地方就行。

注:想要源代码的,后台私信我吧,这里就不放了

1、先看看结构

从猫眼电影上可以看到我们要爬取的网页,首先要提取出这个网页的信息,在了解了大体的情况之后,就右键选择查看网页的源代码,看一下我们需要爬取的数据信息在源代码中的什么地方。


2、伪装成浏览器进行数据请求

这个方法就是老生常谈的事情了,这里不细讲了,在发送请求前加上headers参数即可。


3、提取数据

猫眼里的电影票房等都是加密后的字体,因此我们需要解密字体。虽然字符的编码是变化的,但是对象是不变的。那么我们可以通过第一次下载一个字体文件origin.ttf,并把对应编码的字体写出来,当第二次从网上重新下载一个字体文件online_base64.ttf 的时候,可以对比对象信息,如果对象是一样的,那么就把第一次编码对应的文字赋值给第二次的编码,这样即可。


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

首先需要建立一个空列表,将所有的数据添加到里面去。在之前的提取数据那个函数的时候,将print(data),改写成yield data,将所有的数据添加到一个列表之后就可以保存数据了。


5、需要注意的地方

  • 下载一个基本字体路径,找到它对应的数字及其编码

  • 每一次爬取网页时,都要先下载该网页的字体文件,然后与基本字体文件作对比,获得爬取网页的数字对应编码。

三、BI分析

有了源文件,我们就可以进行BI分析了,至于为什么不用python是因为比较麻烦,像我们如果要做二八分析模型,代码写起来还是比较麻烦的,日常共工作中不太能满足需求。

所以一般来说我现在都是用专业的BI工具进行数据分析。目前市场上的BI工具十分繁多,但是性能也参差不齐,这里我就以国产BI工具的优秀代表 FineBI 为例。

1、数据连接

首先导入我们需要分析的数据,finebi可以连接Excel,CSV,XML,以及各类数据库,这里因为有了python爬取到的excel表,所以直接选择excel导入即可。


2、数据加工

我们爬取到的数据可能需要第二次加工,比如脏数据处理、数据合并、过滤等等,FineBI是通过自助数据集的方式,根据需求对原数据进行再加工处理,新建一个用于分析的数据集,再处理包括选择字段、过滤、分组汇总、新增列、字段设置、排序、合并的操作。


3、数据可视化

因为本次涉及到的指标比较简单,所以基本通过FineBI拖拽数据字段即可呈现可视化。


四、结论分析

不说废话,先放结论:

  • 国内电影市场接近饱和,今年的成绩是虚假繁荣;

  • 头部效应加剧,大多数电影票房惨淡,市场成绩不佳;

  • 票房的增长基本是靠电影价格拉动起来的,观影人次基本没有增长,电影寒冬到来;

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


今年票房前二十名中一半以上都是国产电影,看似繁荣,但其实从上图的区间柱状图中能够看出,《哪吒》、《流浪地球》、《复联4》三部电影属于第一梯队,票房在40亿以上;《我和我的祖国》、《中国机长》、《疯狂的外星人》、《海王》属于第二梯队,票房在20-30亿左右;剩下的电影中基本在20亿以下,排名20的《银行补习班》只有8亿。

整体来说,去年国内电影市场爆款较多,但是整体呈现阶梯状,断崖较多,大部分集中于前五名之中,大体上符合二八法则。

2、票房的帕累托模型

为了搞清是否真的符合帕累托法则,我特意用FineBI加入了一条票房累积百分比:


结果很明显,排名前20%的电影占据了整个市场80%以上的票房总量,也就是说,去年国内市场的票房总量基本上靠着几大爆款电影撑起来的,票房分布越来越集中绝对不是一件好事,这意味大多数的电影成绩惨淡,根本没有生存空间。

3、票房占比、排片率与票房的关系

  • 票房占比:电影票房收入占总收入的比例,票房占比越高,说明电影质量越好,人们越想看;

  • 排片率:排片率高、票房低就是烂片,而排片率低、票房高的电影才是黑马;


这张图我们可以跟排名前二十的柱状图对比一下,真正意义上高票房、高票房占比、低排片率的黑马电影有哪些呢?答案只有一部《流浪地球》。

《哪吒》的排片率高是因为上映同期没有什么优质电影与之竞争,所以《哪吒》的成功一半要归功于人和,一半要归功于天时;《疯狂外星人》的表现中规中矩,《海王》属于典型的商业片,《我和我的祖国》属于特殊情况,不能一概而论。

4、上座率与票房的关系

  • 上座率:即一部影片获得观众人次的多少,优秀的影片上座率就高,反之则低


为了方便对比,我在图中加入了一条平均上座率的警戒线,其中上座率最高的是《我和我的祖国》、《我为你牺牲》,原因就不说了,大家应该都明白;其中比较奇怪的是《飞驰人生》、《新喜剧之王》、《攀登者》,上座率非常高,票房成绩却不如人意,应该是得益于其导演、主演的号召力。

《流浪地球》上座率在平均值以上,无论从哪个角度看都是一部好电影,无懈可击。

值得欣慰的是,上座率排名靠前的基本都是国产电影,看的出来国外电影尚不能满足大多数人的口味。

加群:850591259  领取完整项目代码!

5、做点其他分析

电影类型与上座率的关系

喜剧电影一骑绝尘,动画电影黑马突起,科幻电影方兴未艾,惊悚、悬疑、历史等小众题材的电影仍然惨淡无比。

颜色越深代表上座率越高,字体越大代表票房越高

陈凯歌现在虽然经常被烂片之王所诟病,但是不得不说他的成绩还是很不错的,另外像宁浩、韩寒、郭帆、陈国辉等人都是国产电影的希望。

python 柱状图上显示字体_Python爬取百部电影数据,我发现了这个惊人真相!相关推荐

  1. python大规模获取豆瓣影评_python爬取豆瓣电影排行榜(requests)

    ''' 爬取豆瓣电影排行榜 设计思路: 1.先获取电影类型的名字以及特有的编号 2.将编号向ajax发送get请求获取想要的数据 3.将数据存放进excel表格中 ''' 环境部署: 软件安装: 模块 ...

  2. python爬取百部电影数据,我分析出了一个残酷的真相

    2019年就这么匆匆过去了,就在前几天国家电影局发布了2019年中国电影市场数据,数据显示去年总票房为642.66亿元,同比增长5.4%:国产电影总票房411.75亿元,同比增长8.65%,市场占比 ...

  3. python实现爬虫探探_全栈 - 9 实战 爬取豆瓣电影数据

    这是全栈数据工程师养成攻略系列教程的第九期:9 实战 爬取豆瓣电影数据. 掌握了爬虫的基本原理和代码实现,现在让我们通过实战项目巩固一下. 确定目标 在写爬虫之前应当想清楚:我需要哪方面的数据?需要包 ...

  4. python战反爬虫:爬取猫眼电影数据 (一)(Requests, BeautifulSoup, MySQLdb,re等库)

    姓名:隋顺意 博客:Sui_da_xia 微信名:世界上的霸主 本篇文章未涉及猫眼反爬,主要介绍爬取无反爬内容,战反爬内容请去 python战反爬虫:爬取猫眼电影数据 (二)(Requests, Be ...

  5. python战反爬虫:爬取猫眼电影数据 (一)

    非常荣幸邀请到 赛迪人工智能大赛(简称AI世青赛)全球总决赛银奖的获得者 隋顺意 小朋友为本公众号投稿,隋小朋友虽然小小年纪,但编程能力已经比大多数大学生强非常多了,欢迎大家关注,捧场. 姓名:隋顺意 ...

  6. python战反爬虫:爬取猫眼电影数据 (二)(Requests, BeautifulSoup, MySQLdb,re等库)

    姓名:隋顺意 博客:Sui_da_xia 微信名:世界上的霸主 本文主要介绍破解反爬,可以先去上一篇观看爬取无反爬内容 python战反爬虫:爬取猫眼电影数据 (一)(Requests, Beauti ...

  7. python爬虫入门练习:BeautifulSoup爬取猫眼电影TOP100排行榜,pandas保存本地excel文件

    传送门:[python爬虫入门练习]正则表达式爬取猫眼电影TOP100排行榜,openpyxl保存本地excel文件 对于上文使用的正则表达式匹配网页内容,的确是有些许麻烦,替换出现任何的差错都会导致 ...

  8. Python爬虫实战案例一:爬取猫眼电影

    背景 笔者上一篇文章<基于猫眼票房数据的可视化分析>中爬取了猫眼实时票房数据,用于展示近三年电影票房概况.由于数据中缺少导演/演员/编剧阵容等信息,所以爬取猫眼电影数据进行补充.关于爬虫的 ...

  9. Java爬取豆瓣电影数据

    所用到的技术有Jsoup,HttpClient. Jsoup jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址.HTML文本内容.它提供了一套非常省力的API,可通过DOM,CS ...

最新文章

  1. 微软“影子系统”Windows SteadyState 末日将至
  2. 【转】MySQL实现Oracle里的 rank()over(ORDER BY) 功能
  3. 常用模块(数据序列化 json、pickle、shelve)
  4. 1. face_generate.py
  5. 手工修复Azure DevOps无法连接到Azure的问题
  6. P7293-[USACO21JAN]Sum of Distances P【统计,bfs】
  7. Python程序员薪资 你不知道的事
  8. AI算法 - 粒子滤波
  9. 计算机强制关机后无法正常启动,电脑强制关机后无法正常启动,一直黑屏,这是为什么呢?...
  10. Frobenius自同构
  11. Staking八月排行榜 | TokenInsight
  12. Android - scheme 一个app跳转另一个app、模块开发
  13. 新浪微博 发微博消息的处理
  14. 放射组学常用到的一些工具(软件)
  15. asp.net core mvc 错误处理 ExceptionFilterAttribute
  16. POI操作excel基本使用
  17. 接码平台源码_你的票被服务器上的爬虫“吃”了,本文解析爬虫抢票的源码!...
  18. 数据库(mysql)表的五大约束条件
  19. 面试项目经理,这12个问题一定会被问到(建议收藏)
  20. 萌新必看——10种客户端存储哪家强,一文读尽!

热门文章

  1. OpenCV Laplacian 拉普拉斯变换
  2. 模型驱动开发 - 产品线架构的演进
  3. Mapbox词汇表中文文档(查找Mapbox相关的术语及其定义)
  4. 五年 Web 开发者 star 的 github 整理说明
  5. 戴尔推出PowerEdge T30,主打小型办公和家庭办公市场
  6. Django 模板中变量、过滤器、标签的使用方法
  7. 【李宏毅2020 ML/DL】P26-33 Explainable ML
  8. 【操作系统/OS笔记16】进程间通信(IPC),直接/间接通信与阻塞/非阻塞通信,信号,管道,消息队列,共享内存
  9. python修改zabbix中的ip
  10. CSS-文本垂直居中