阅读本文大概需要3分钟
国庆长假在家,难得有时间休息!终于有时间可以看看电影了,看了很多经典的电影,一首大话西游让我怀念起周星驰的电影,我是看着周星驰的电影长大. 很多电影都是耳熟能详,看了很多遍了,于是我想数据分析一下星爷30年来的电影。
分析要点:
周星驰演了多少部片子
周星驰30年的电影评分最高,点评人数最多哪一部
周星驰30年的电影哪一年拍的最多
合作过的最多的是哪几个男女演员
合作过的导演次数最多是谁
作品的高峰时间段
1、数据的获取
1.网页分析
1).目标网站
周星驰的电影很多网站都有,比如猫眼,豆瓣上都有,比较全的还是豆瓣!这次我为了省事偷懒,用了豆瓣的API,当程序写了差不多的时候,我发现API坑很多,还好电影的数据不大,就将就一下吧
2).豆瓣api
豆瓣提供了一整套的api可以让大家查询,比如我想搜电影,可以按照导演或者演员的关键字查询,也可以按照电影的id查询,这里我搜索"周星驰"电影:
3).获取的电影的格式
API的优点就是网站把你要的数据,都整理好了,比如这里是json格式呈现给你.
一共120部电影,分豆瓣评分, 电影名字,导演,演员列表,年代,类型,总的点评人数,观察人数等等,基本你想要的全都在这里.(感觉是一个套餐已经做好了,你直接吃就可以了)
但是API虽然好,坑很多!最后我会说一下
2.管理网页链接,代码要点
整个这个小项目非常简单,跟以往的爬虫非常类似,甚至还简单不少。因为数据量非常少,120条.一共分6页,用一个UrlManager 管理爬取的网页链接
2、数据清洗
3.规整数据
1).设定维度
因为我们要分析的电影数据特征值主要包括,下面这10个维度
MOVIES_FIELDS=['title','rate','casts','genres',
'directors','movie_id','year',
'comments_count','ratings_count',
'collect_count']
2).源码要点
因为是通过API获取的,数据已经经过了清洗,由于通过搜索演员API只能获取"电影名","电影评分","演员名单","影片类型","导演","上映年份"
剩下的几个评论维度比较细,我们需要搜索id获取.
3).清洗数据
搜索出来的数据有的时候不一定可靠,比如:下面的数据就跟周星驰没有关系
所以我们要过滤一下:
if ACTOR in casts:
self.movies.append(movie_info)
4、数据的保存
4.保存为CSV文件
1).数据存储
只要是爬虫,一定会涉及到数据的存储(无论是存文件还是数据库),这里我习惯存为csv文件
2).续爬问题
虽然我们的数据集非常小,但是也要考虑续爬的问题。所以文件的写入我用追加模式,并且写之前先读取原来的数据,如果要写的movie_id已经存在,则不写.
3).数据的样子
5、数据分析
5.最有趣的部分
写这个小脚本的目的,就是为了分析一下周星驰的电影!这些数据里面有哪些有趣的故事呢,我们一一来看:
1.从几个最分析
1).演了多少部片子
df=pd.read_csv('movie.csv')
print (df.describe())
虽然我是他的影迷,看过他的很多电影,但是我也没有想到, 大师一共演了91部电影
一共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).观影人数最多的前五部
>>
大话西游之大圣娶亲 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).什么类型的题材最多
>>
[('喜剧', 59), ('动作', 32), ('剧情', 25), ('爱情', 12), ('奇幻', 9), ('犯罪', 7), ('短片', 5), ('古装', 4), ('纪录片', 4), ('冒险', 2)]
看了喜剧偏多,喜剧之王当之无愧!
2.合作过的导演和演员
35年的电影里面,我们看看合作过次数最多的男女演员和导演是哪些
5).合作过最多的男女演员和导演
>>
[ ('吴孟达', 15), ('张敏', 7), ('梁朝伟', 7), ('刘德华', 5), ('吴君如', 5), ('吴镇宇', 5), ('莫文蔚', 4), ('陈百祥', 3), ('张曼玉', 3)]
合作过最多的男演员是:吴孟达
合作过最多的女演员是:张敏
6).合作过的导演
代码和上面类似,我们之间看结果
>>
[('李力持', 11), ('王晶', 8), ('刘镇伟', 6), ('徐克', 3), ('陈嘉上', 3), ('杜琪峰', 3), ('元奎', 3), ('谷德昭', 2), ('高志森', 2)]
最多的是李力持导演,其次是王晶
3.电影的时间维度
这35年里面一定有高峰和低谷,我们看一下星爷作品最集中的年代是什么时候
作品的高峰期在90年左右,90,91年累计演了23部电影,那个时候星爷差不多30岁。事业的高峰期!
到了2000年以后,星爷的电影数量锐减的很厉害,相信那个时候更多的追求质量,从图上看有很多空洞,说明星爷在打磨一些好的作品,高质量的作品,而不是数量.
从年代和上映电影作品的评分上看,星爷的高质量的作品,主要集中在1990-1995!红色的均评分线,也就是星爷的1990作用有大量的作品,都高于平均评分,算是一个高潮期。
结论:
好了,周星驰的电影数据分析,就讲到这里,这篇文章已经用了近20张图,限于篇幅,还有很多地方可以深入挖掘和分析!上面的只分析了三成的数据,如果多维度深入剖析,可以挖掘出更多有趣的东西!另外API对数量和时间都有限制,如果对数据量大的爬取,还是不要用API.大家如果有什么问题,欢迎留言讨论!
历史人气文章
长按二维码,关注【菜鸟学python】
来源 | 菜鸟学Python
作者 | xinxin
本文章为菜鸟学Python独家原创稿件,未经授权不得转载