周星驰30年电影数据分析

浏览: 2196

阅读本文大概需要3分钟

     国庆长假在家,难得有时间休息!终于有时间可以看看电影了,看了很多经典的电影,一首大话西游让我怀念起周星驰的电影,我是看着周星驰的电影长大. 很多电影都是耳熟能详,看了很多遍了,于是我想数据分析一下星爷30年来的电影。

分析要点:

  • 周星驰演了多少部片子

  • 周星驰30年的电影评分最高,点评人数最多哪一部

  • 周星驰30年的电影哪一年拍的最多

  • 合作过的最多的是哪几个男女演员

  • 合作过的导演次数最多是谁

  • 作品的高峰时间段

1、数据的获取

1.网页分析

1).目标网站

周星驰的电影很多网站都有,比如猫眼,豆瓣上都有,比较全的还是豆瓣!这次我为了省事偷懒,用了豆瓣的API,当程序写了差不多的时候,我发现API坑很多,还好电影的数据不大,就将就一下吧

2).豆瓣api

豆瓣提供了一整套的api可以让大家查询,比如我想搜电影,可以按照导演或者演员的关键字查询,也可以按照电影的id查询,这里我搜索"周星驰"电影:

image.png

3).获取的电影的格式

image.png

API的优点就是网站把你要的数据,都整理好了,比如这里是json格式呈现给你.

一共120部电影,分豆瓣评分, 电影名字,导演,演员列表,年代,类型,总的点评人数,观察人数等等,基本你想要的全都在这里.(感觉是一个套餐已经做好了,你直接吃就可以了)

但是API虽然好,坑很多!最后我会说一下


2.管理网页链接,代码要点

整个这个小项目非常简单,跟以往的爬虫非常类似,甚至还简单不少。因为数据量非常少,120条.一共分6页,用一个UrlManager 管理爬取的网页链接

image.png

2、数据清洗

3.规整数据

1).设定维度

因为我们要分析的电影数据特征值主要包括,下面这10个维度

MOVIES_FIELDS=['title','rate','casts','genres',

               'directors','movie_id','year',

               'comments_count','ratings_count',

               'collect_count']

2).源码要点

因为是通过API获取的,数据已经经过了清洗,由于通过搜索演员API只能获取"电影名","电影评分","演员名单","影片类型","导演","上映年份"

image.png

剩下的几个评论维度比较细,我们需要搜索id获取.

image.png

3).清洗数据

搜索出来的数据有的时候不一定可靠,比如:下面的数据就跟周星驰没有关系

image.png

所以我们要过滤一下:

if ACTOR in casts:
   
self.movies.append(movie_info)

4、数据的保存

4.保存为CSV文件

1).数据存储

只要是爬虫,一定会涉及到数据的存储(无论是存文件还是数据库),这里我习惯存为csv文件

image.png

2).续爬问题

虽然我们的数据集非常小,但是也要考虑续爬的问题。所以文件的写入我用追加模式,并且写之前先读取原来的数据,如果要写的movie_id已经存在,则不写.

image.png

3).数据的样子

image.png

5、数据分析

5.最有趣的部分

写这个小脚本的目的,就是为了分析一下周星驰的电影!这些数据里面有哪些有趣的故事呢,我们一一来看:

1.从几个最分析

1).演了多少部片子

df=pd.read_csv('movie.csv')
print (df.describe())

虽然我是他的影迷,看过他的很多电影,但是我也没有想到, 大师一共演了91部电影

image.png

  • 一共91部片子,最早的是1982年,目前2020有一部片子要上映,也就是说演了35年电影,平均算下来一年拍2-3部电影

  • 得分最高的一部电影是9.2分( 大家猜猜看是哪一部)

  • 评论最多的一部电影有近50万的店铺

那么我们具体看一下都是哪些电影

2).评分最高,点评最高

#1.1.评分超过8.5分的是哪些
rate_score = df.loc[df.rate >= 8.5]
print (rate_score[['title','rate','casts','year']])

>>

大话西游之大圣娶亲   9.2   周星驰/吴孟达/朱茵  1995

喜剧之王   8.5  周星驰/张柏芝/莫文蔚  1999

大话西游之月光宝盒   8.9  周星驰/吴孟达/罗家英  1995

#1.2 点评超过30万
ratings_count=df.loc[df.ratings_count >= 300000]
print (ratings_count[['title','rate','casts','year']])

>>

大话西游之大圣娶亲   9.2   周星驰/吴孟达/朱茵  1995

喜剧之王   8.5  周星驰/张柏芝/莫文蔚  1999

美人鱼   6.8   邓超/罗志祥/张雨绮  2016

大话西游之月光宝盒   8.9  周星驰/吴孟达/罗家英  1995

西游降魔篇   7.1     文章/舒淇/黄渤  2013

唐伯虎点秋香   8.4   周星驰/巩俐/陈百祥  1993

看来大话西游是周星驰的巅峰之作!

3).观影人数最多的前五部

image.png

>>

大话西游之大圣娶亲   9.2   周星驰/吴孟达/朱茵  1995       634968.0

大话西游之月光宝盒   8.9  周星驰/吴孟达/罗家英  1995       534991.0

美人鱼   6.8   邓超/罗志祥/张雨绮  2016       433310.0

唐伯虎点秋香   8.4   周星驰/巩俐/陈百祥  1993       413278.0

西游降魔篇   7.1     文章/舒淇/黄渤  2013       406119.0

4).什么类型的题材最多

image.png

>>

[('喜剧', 59), ('动作', 32), ('剧情', 25), ('爱情', 12), ('奇幻', 9), ('犯罪', 7), ('短片', 5), ('古装', 4), ('纪录片', 4), ('冒险', 2)]

看了喜剧偏多,喜剧之王当之无愧!

2.合作过的导演和演员

35年的电影里面,我们看看合作过次数最多的男女演员和导演是哪些

5).合作过最多的男女演员和导演

image.png

>>

[ ('吴孟达', 15), ('张敏', 7), ('梁朝伟', 7), ('刘德华', 5), ('吴君如', 5), ('吴镇宇', 5), ('莫文蔚', 4), ('陈百祥', 3), ('张曼玉', 3)]

合作过最多的男演员是:吴孟达

合作过最多的女演员是:张敏

6).合作过的导演

代码和上面类似,我们之间看结果

>>

[('李力持', 11), ('王晶', 8), ('刘镇伟', 6), ('徐克', 3), ('陈嘉上', 3), ('杜琪峰', 3), ('元奎', 3), ('谷德昭', 2), ('高志森', 2)]

最多的是李力持导演,其次是王晶

3.电影的时间维度

这35年里面一定有高峰和低谷,我们看一下星爷作品最集中的年代是什么时候

image.png

image.png

  • 作品的高峰期在90年左右,90,91年累计演了23部电影,那个时候星爷差不多30岁。事业的高峰期!

  • 到了2000年以后,星爷的电影数量锐减的很厉害,相信那个时候更多的追求质量,从图上看有很多空洞,说明星爷在打磨一些好的作品,高质量的作品,而不是数量.

image.png

从年代和上映电影作品的评分上看,星爷的高质量的作品,主要集中在1990-1995!红色的均评分线,也就是星爷的1990作用有大量的作品,都高于平均评分,算是一个高潮期。

结论:


好了,周星驰的电影数据分析,就讲到这里,这篇文章已经用了近20张图,限于篇幅,还有很多地方可以深入挖掘和分析!上面的只分析了三成的数据,如果多维度深入剖析,可以挖掘出更多有趣的东西!另外API对数量和时间都有限制,如果对数据量大的爬取,还是不要用API.大家如果有什么问题,欢迎留言讨论!

历史人气文章

 长按二维码,关注【菜鸟学python】


image.png

来源 | 菜鸟学Python

作者 | xinxin

本文章为菜鸟学Python独家原创稿件,未经授权不得转载

推荐 0
本文由 菜鸟学Python 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册