豆瓣电影 Top 250 数据分析

Jan 21, 2018
2044
#豆瓣#电影#数据

本文最近一次更新于 6 年 3 个月前,其中的内容很可能已经有所发展或是发生改变。

https://ae01.alicdn.com/kf/HTB1.BO_ajvuK1Rjy0Fa7602aVXas.png

前言

前段时间忙于备考,博客有段时间没更新了。其实早就有写这篇博客的想法了,原因嘛——我是比较喜欢看电影的,而且近来也对数据分析颇感兴趣,于是花了一天时间,先是爬取数据,再分析整理,数据可视化。

其实豆瓣对爬虫的防范算是比较高级了,即使伪造了 Cookie,还是会封禁 IP(还好我的代理 IP 多😏),甚至还会把你的帐号暂时冻结,其实要不是有一些电影词条必须登录才可见,也不用伪造 Cookie 这么麻烦。

爬取

之前爬取都是用的正则匹配,这次首次接触了「Beautiful Soup」这个库,相见恨晚啊,不多说,先上代码:

def get_info(url):
    movie = {}
    proxies = {'https': "socks5://127.0.0.1:1080"}
    info = get(url, cookies=read_cookie(), proxies=proxies).text
    soup = BeautifulSoup(info)
    try:
        # get movie name
        name = soup.find(property='v:itemreviewed').get_text()
        movie['name'] = name.split(' ')[0]

        # get movie year
        year = soup.find(class_='year').get_text()
        movie['year'] = year[1:-1]

        # get movie info
        info = soup.find(id='info').get_text().replace(' ', '').split('\n')
        info = [x for x in info if x is not '']
        for item in info:
            if '导演:' in item:
                movie['director'] = item[3:].split('/')
            if '主演:' in item:
                movie['actors'] = item[3:].split('/')
            if '类型:' in item:
                movie['type'] = item[3:].split('/')
            if '国家/地区:' in item:
                movie['region'] = item[8:].split('/')
            if '语言:' in item:
                movie['language'] = item[3:].split('/')
            if '片长:' in item:
                time = [
                    search(r'[\d]*', x).group() for x in item[3:].split('/')
                ]
                movie['time'] = sorted(time, reverse=True)[0]

        # get top250 info
        movie['rank'] = soup.find(class_='top250-no').get_text()

        movie['number'] = soup.find(property='v:votes').get_text()

    except Exception as e:
        print(e)
    return movie

其中片长取得是无删减版的片长,即不同版本中最长的。

地区、导演、语言等由于会出现多项内容,采取列表存放。

以下统计数据截止至 2018/01/20

导演

电影导演统计

其中由「宫崎骏」和「克里斯托弗·诺兰」贡献最多,均为 7 部,具体为:

宫崎骏(日本):

  • 《千与千寻》,上映年份为「2001」,排名为 No.6
  • 《龙猫》,上映年份为「1988」,排名为 No.17
  • 《天空之城》,上映年份为「1986」,排名为 No.33
  • 《哈尔的移动城堡》,上映年份为「2004」,排名为 No.45
  • 《幽灵公主》,上映年份为「1997」,排名为 No.80
  • 《风之谷》,上映年份为「1984」,排名为 No.106
  • 《魔女宅急便》,上映年份为「1989」,排名为 No.189

克里斯托弗·诺兰(英国):

  • 《盗梦空间》,上映年份为「2010」,排名为 No.9
  • 《星际穿越》,上映年份为「2014」,排名为 No.25
  • 《蝙蝠侠:黑暗骑士》,上映年份为「2008」,排名为 No.32
  • 《致命魔术》,上映年份为「2006」,排名为 No.61
  • 《记忆碎片》,上映年份为「2000」,排名为 No.132
  • 《蝙蝠侠:黑暗骑士崛起》,上映年份为「2012」,排名为 No.168
  • 《追随》,上映年份为「1998」,排名为 No.170

演员

电影演员统计

其中由「张国荣」贡献最多(前三居然都是香港地区的演员),有 8 部,分别是:

  • 《霸王别姬》,导演为「陈凯歌」,上映年份为「1993」,排名为 No.2
  • 《春光乍泄》,导演为「王家卫」,上映年份为「1997」,排名为 No.77
  • 《射雕英雄传之东成西就》,导演为「刘镇伟」,上映年份为「1993」,排名为 No.88
  • 《倩女幽魂》,导演为「程小东」,上映年份为「1987」,排名为 No.113
  • 《东邪西毒》,导演为「王家卫」,上映年份为「1994」,排名为 No.131
  • 《英雄本色》,导演为「吴宇森」,上映年份为「1986」,排名为 No.140
  • 《纵横四海》,导演为「吴宇森」,上映年份为「1991」,排名为 No.149
  • 《阿飞正传》,导演为「王家卫」,上映年份为「1990」,排名为 No.183

地区

电影地区统计

其中「美国」地区一枝独秀,超过半数以上电影的制片地区均为「美国」,且远超第二名「英国」。

  • 美国:140 部
  • 英国:34 部
  • 日本:32 部
  • 香港:26 部
  • 法国:26 部
  • 德国:20 部
  • 中国大陆:16 部

片长

电影片长

统计名称数值
中位数118.0
均值124.0
众数98.0(10 次)
标准差34.1
极差218.0

其中片长最长的电影为《指环王3:王者无敌》,导演是「彼得·杰克逊」,片长为 263 mins,排名是 No.30。

其中片长最短的电影为《萤火之森》,导演是「大森贵弘」,片长为 45 mins,排名是 No.150。

年份

电影年份

统计名称数值
中位数2002.0
均值1998.6
众数2004(13 次)
标准差15.6
极差85

其中距今最久远的电影是《城市之光》,导演是「查理·卓别林」,年份为 1931 年,排名是 No.210。

其中距今最接近的电影有 5 部,均为 2016 年上映:

  • 《疯狂动物城》,导演是「拜伦·霍华德」等,制片国家为「美国」,排名为 No.43
  • 《看不见的客人》,导演是「奥里奥尔·保罗」,制片国家为「西班牙」,排名为 No.83
  • 《摔跤吧!爸爸》,导演是「涅提·蒂瓦里」,制片国家为「印度」,排名为 No.104
  • 《海边的曼彻斯特》,导演是「肯尼思·洛纳根」,制片国家为「美国」,排名为 No.151
  • 《你的名字。》,导演是「新海诚」,制片国家为「日本」,排名为 No.245

嘿嘿,没想到吧,贡献电影最多的年份并不是「Top 250」前四名中有三部的 1994 年,而是 2004 年。

评分

电影评分统计

统计名称数值
中位数8.70
均值8.78
众数8.7(44 次)
标准差0.27
极差1.40

其中最高分为 9.6 分,为两部电影所获得:

  • 《肖申克的救赎》,导演为「弗兰克·德拉邦特」,评分人数为 952814 人,排名为 No.1
  • 《控方证人》,导演为「比利·怀尔德」,评分人数为 99908 人,排名为 No.41

其中评分最低的电影为《疯狂的石头》,分数是 8.2 分,导演为「宁浩」,评分人数为 312083 人,排名为 No.230

可以看出豆瓣在进行「Top 250」排名时,并不是仅看评分,其中评分人数也占了很大的一部分比重,且似乎还有一些其它的因素,比如《血战钢锯岭》这部电影,评分 8.7,评分人数为 310624 人,却并没有上榜,同为评分 8.7,评分人数为 314940 的电影《看不见的客人》排名却早已进前百(No.83)。

最后,本人并非专业电影人士,无法针对以上数据提出建设性的建议,所做统计也仅仅是出于爱好,也愿自己能在闲暇时间里,多看几部电影。

豆瓣电影 Top 250 数据分析

https://blog.itswincer.com/posts/7a8186a0/

作者

Wincer

更新于

Dec 24, 2017

许可协议

CC BY-NC-ND 4.0
  1. Apr 5, 2023

    OpenCore 引导安装 macOS Ventura 教程
  2. Dec 10, 2022

    我最近订阅的一些软件服务
  3. Jul 2, 2022

    从一次 DNS 流量测试说起
  4. Nov 27, 2021

    我的 FreeBSD 服务器配置
  5. Sep 29, 2020

    Python 并发之痛:线程,协程?
  6. Jan 30, 2020

    累加器引发的一点思考