我最近闲得慌,把某瓣上几千部电影的评分数据扒下来分析了分析。不说废话,直接上代码和结果。
数据抓取用了 requests 和 BeautifulSoup。某瓣的反爬不算严,加个 headers 就能跑。代码大概长这样:
import requests
from bs4 import BeautifulSoup
headers = {'User-Agent': 'Mozilla/5.0'}
url = 'https://movie.douban.com/top250'
response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.text, 'html.parser')
某瓣评分是10分制,但大部分人打星星是1到5星。我统计了每个分数段的电影数量。结果很直接:8分以上的电影占了一大半,6分以下的片子很少。这不是怪事吗?平时大家骂烂片骂得凶,怎么评分都偏高?
我又按年份分了组。发现一个规律:2010年以后的华语电影,评分普遍比以前的低。2010年前的老片,再烂也能混个7分。现在的新片,8分以上就很少了。这不是电影质量的问题,是人变了。
我画了个散点图,横轴是评分人数,纵轴是评分。一眼看去,评分人数越多的电影,评分越集中在7.5到8.5之间。那些评分人数少的冷门片,评分要么特别高要么特别低。说明什么?很多人只看热门片,冷门片的评分全靠硬核影迷撑。
然后把国产片和进口片做对比。国产片平均分7.2,进口片平均分8.1。差距明显。但有个例外:动画片不管国产还是进口,评分都偏高。宫崎骏的片子9分以上不稀奇,国产动画像《大闹天宫》也是9分。这部说明动画片受众比较宽容?
最后用情感分析跑了一下短评。发现高分电影的短评里,“感动”“好看”“值得”出现频率高。低分电影的短评里,“烂”“失望”“浪费”最多。这没啥稀奇的。稀奇的是:某瓣评分和短评情感分数的相关系数只有0.6。也就是说,评分和评论内容不完全一致。有些人打高分但评论里又骂,有些人打低分但夸得飞起。这矛盾吗?可能这些人就是想表达个态度。
总结一下:某瓣评分不是客观标准。它反映的是一群人的口味和习惯。高分片不一定真好,低分片不一定真烂。下次再看评分,心里要有个数。