豆瓣Top250电影python数据分析
- 使用python爬虫获取豆瓣电影数据
- 清洗和处理数据
- 使用方差、皮尔斯相关系数分析,plot进行数据可视化分析
python爬虫爬取豆瓣电影数据
首先,我们百度搜索豆瓣电影250,排名第一的就是我们想要的,点击进去。下面分别是首页和详细页
由于我们需要爬去所有有价值的数据,所以,我们要进入每一个详情页进行数据提取,下面是我打算获取的数据:
导演、编剧、主演、类型、制作地区、语言、上映时间、片长、评分、评价人数、观看人数、想看人数、短评条数
具体如何找数据的位置,如何爬取数据详细的步骤大家可以看我之前爬起虎扑贴吧的博客
这里我的思路是:
- 获取每一部电影的详情页地址,并将其存储到csv文件中
- 读取csv文件中的地址,并一一进行数据爬取。
- 将爬取的数据存储到csv文件中,方便之后进行数据分析。
这里有几点需要注意的地方:
- 在你进行多次数据爬取后,豆瓣会进行ip限制,所以这时候你需要登录你的豆瓣账号,这里也就是使用cookie模拟登录。
- 大家可以采用多线程或多进程进行数据爬取,速度会快很多。我这里没有使用这些
- 在数据全部爬取完毕之后,我才将这些数据统一写入到文件中。但是一旦出现程序错误,比如没有找到某一个元素,程序就会报错,就前功尽弃了。所以 我们要加入异常处理。
数据清洗和相关处理
从上面两种图可以看到,出版时间和片长时间格式有点问题。所以,出版时间我只提取了年份,片长时间只保留数字。
当然,在我做完数据分析的时候,其实出版时间可以保留月份,用来分析哪些月份出版的电影最多等等,大家实战的时候可以试一下。
开始进行分析
-
对出版国家的数量进行统计分析
这里需要注意一下,很多电影都是好几个国家联合出版的。
从结果中我们发现,出版电影最多的前四名分别是
- 美国 138部,占比37.3%
- 日本 34部,占比9.19%
- 英国 33部,占比8.92%
- 中国香港 27部,占比7.3%
美国占比遥遥领先这个我们都不意外,毕竟像这些 《肖申克的救赎》、《阿甘正转》、《泰坦尼克号》都是我们非常喜欢也非常熟悉的经典电影。
日本排名第二得益于日本动漫的优势。在这个top250中,有许多日本动漫电影。我不是一个动漫迷,但是我周围有一些朋友是,平常偶尔也会看一下,也能够看得出来,日本动漫做的确实很好。
-
对电影类型进行分析
结果中,我们发现,电影类型最多的前四位是剧情、爱情、喜剧、犯罪。电影类型最少的前四位是:情色、灾难、恐怖、运动。
与前面的出版国家情况类似,每一部电影都有许多类型。
博主也趁着疫情在家这一段时间,刷了几部这里面的电影。给我最大的感触就是我能够与情节产生共鸣。无论是《海上钢琴师》男主1900 碰见心动女生时的不知所措、开心、懊悔,还是《肖申克的救赎》安迪逃出*时的激动、咆哮;我们就像是电影里的角色,情感上就感觉特别的真实。
这个结果我们也不会有太大意外。
- 对电影上映时间进行分析
从图1来看,出版电影最多的年份是2004年,其次是2010、2013、2015.
从图2的近31年出版电影数量分析结果来看,呈现一个山峰形状。也就是每隔一年,都会涌现出比较多的好电影。从2000之后,电影的数量相较于之前有了比较大的提升,也得益于电影行业在近二十年的快速发展,从业人数越来越多,每年上映的电影基数越来越多,好电影也会相应的越来越多。
从图3的饼状图分析结果来看,2000-2010年出版的电影所占的比例最大,其次是2010-2020年、1990-2000年。这里每隔十年进行分析,由于2020年刚开始,又受疫情影响,还没有很多电影上映,可能会造成近十年电影数量小于前一个十年。
-
对电影时长进行分析
从饼状图我们可以看到,电影时长集中在90分钟-140分钟的电影占6成,其次是集中在140分钟-180分钟的电影,占16.4%。这也符合我们平常的认知,大部分电影时长都是在一个半小时到两个小时左右。
从散点图我们可以看到,超过200分钟的电影共有4部,其中时长最长的是238分钟;最少时长的电影只有45分钟。从整体趋势来看,近些年的电影时长越来越集中在100分钟-150分钟这个区间内,这可能也是电影行业的共识吧,时间太短事情讲不清楚,时间太长有显得剧情太拖拉。(哈哈,自己猜测的????)
另外,我对出版时间和电影时长进行皮尔斯相关系数分析,结果显示出版时间与电影时长呈负相关线性关系(也就是随着出版时间的增加,电影时长慢慢变短),但是影响程度比较弱。
- 其他数据相关分析
电影评分相关数据分析表:
类型 | 数据 |
---|---|
均值 | 8.879200 |
方差 | 0.267307 |
最小值 | 8.300000 |
25% | 8.700000 |
50% | 8.800000 |
75% | 9.100000 |
最大值 | 9.700000 |
绝对多数电影评分集中在8.7-9.1中间,占比50%,最高评分为9.7,最低评分为8.3.
9.1评分以上的电影数量占比20%,8.7评分以下的电影占比25%.
上面3个图是用来分析评分与上映时间、电影时长的关系。从图中我们可以看到,1980年以下的电影,大多数评分都超过9.0,这也说明经典就是经典,只会随着时间流逝,更显得弥足珍贵。
由于上述图无法判断出好评与电影时长和评分的关系,接下来我们使用斯皮尔曼相关系数进行分析,评分与电影时长的pvalue为0.1667、评分与出版时间的pvalue为-0.1874,表明,评分与电影时长呈正相关,相关性不强,评分与出版时间呈负相关,相关性不强。这也证明了我们前面分析的,老电影通常评分都比较高。
将观看人数与想看人数以及评论人数进行对比分析,从上图可以看到,这三个数据的趋势基本一直。也就是这三者存在正相关线性关系,而且程度非常强。
接下来统计评论率(评论人数/观看人数)
类型 | 数据 |
---|---|
均值 | 0.130242 |
方差 | 0.045363 |
最小值 | 0.043521 |
25% | 0.096739 |
50% | 0.129904 |
75% | 0.159457 |
最大值 | 0.291848 |
从结果上来看,评论率最小的不到百分之5,也就是有100个人看过这个电影,只有五个人写了评论。平均值也就13%。评论率超过15.9%的只占25%。所以说,大家平常在豆瓣点击看过,评完分后,记得去写评论,为你喜欢的电影写下你额感受,让更多的人看到,这样也会感染更多的人。
原文链接:https://blog.csdn.net/lzx159951/article/details/104530793