前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >奥斯卡,究竟谁一直在陪跑。

奥斯卡,究竟谁一直在陪跑。

作者头像
小F
发布2020-10-09 15:27:26
3390
发布2020-10-09 15:27:26
举报

就在这礼拜,第91届奥斯卡金像奖落下了帷幕。

说实话,我对奥斯卡并不感冒。

之所以写这期内容,应该是因为莱昂纳多·迪卡普里奥,俗称「小李子」。

「小李子」在2016年,凭借着《荒野猎人》获得了第88届奥斯卡最佳男主角。

结束了自己陪跑奥斯卡22年的旅程。

这里有必要解释一下。

「小李子」并没有年年都入选奥斯卡的提名。

算起来应该共有5次提名,其中1次成功。

之所以是22年,是因为在1993年时候,他就获得了第66届奥斯卡最佳男配角的提名。

直到2016年才成功拿到小金人,这期间一共历时22年。

本次通过爬取历届的奥斯卡最佳男主角、男配角、女主角、女配角信息。

来看看谁才是当之无愧的陪跑王。

即经常被提名,但是从未获奖的演员。

/ 01 / 网页分析

奥斯卡的相关数据获取,来源于Mtime时光网。

网站没反爬,所以可以轻松获取到数据。

这里以最佳男主角为例,获取时间、获奖者及提名者。

通过一个循环,将最佳男主角、男配角、女主角、女配角信息拿到手。

/ 02 / 数据获取

时间、获奖者及提名者信息获取代码如下。

代码语言:javascript
复制
import time
import requests
from bs4 import BeautifulSoup

filenames = ['Best_Actor_LR.csv', 'Best_Actress_LR.csv', 'Best_Actor_SR.csv', 'Best_Actress_SR.csv']


def get_message(num1, num2):
    """获取数据"""
    time.sleep(5)
    years, wins, nominations = [[], [], []]
    # 请求网址
    url = 'http://award.mtime.com/3/award/3' + str(num1) + '/index' + str(num2) + '.html'
    headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'}
    response = requests.get(url=url, headers=headers)
    html = response.text
    # 对请求结果进行编码解码处理,避免出现乱码
    html = html.encode('ISO-8859-1')
    html = html.decode('utf-8')
    # 提取信息
    soup = BeautifulSoup(html, 'html.parser')
    div = soup.find_all(class_='event_awards event_list')
    # 获取时间信息
    for dt in div[0].find_all('dt'):
        if len(dt) == 1:
            year = dt.get_text().replace('\n', '').strip()
            years.append(year)
    # 获取获奖者信息
    for dd in soup.find_all(class_='yellowbox'):
        win = dd.find(class_='px14 c_a5').find('a').get_text().split(' ')[0]
        wins.append(win)
    # 获取提名者信息
    for dd in soup.find_all(class_='bluebox'):
        names = []
        for k in dd.find_all(class_='px14 c_a5'):
            name = k.get_text().strip().split(' ')[0]
            names.append(name)
        # 提名者有多个,拼接提名者信息
        nomination = ' '.join(names)
        nominations.append(nomination)
    # 写入CSV文件中
    for year, win, nomination in zip(years, wins, nominations):
        print(year, win, nomination)
        filename = filenames[num1]
        with open(filename, 'a+') as f:
            f.write(year + ',' + win + ',' + nomination + '\n')
        f.close()


if __name__ == '__main__':
    for i in range(4):
        num1 = i
        for j in range(1, 10):
            if j == 1:
                num2 = ''
            else:
                num2 = -j
            get_message(num1, num2)

最后成功获取到数据。

这里发现网站上少了2008、2009年的数据。

所以需要手动添加,注意一下。

/ 03 / 数据可视化

01 最佳男主角

丹尼尔·戴-刘易斯是目前仅有的一位,三度问鼎奥斯卡最佳男主角的男演员。

那么他的三部获奖作品是哪些呢?

1990年的《我的左脚》,2008年的《血色将至》,2013年的《林肯》。

尴尬了,都没看过...

好像听说过《林肯》...

奥斯卡小金人总体上是偏向于艺术电影的。

所以那些个商业电影,获奖的寥寥无几。

今年《黑豹》的提名就天天被调侃,俗称「瓦坎达农村保卫战」...

陪跑者一目了然。

一位是彼德·奥图,另一位则是理查德·伯顿。

原来「小李子」并不是最惨的。

02 最佳女主角

凯瑟琳·赫本「一马当先」。

她的四部获奖作品如下。

1934年的《清晨的荣誉》,1967年的《猜猜谁来吃晚餐》,1968年的《冬狮》,1982年的《金色池塘》。

同上,都没有看过...

最佳女主角陪跑者有三位。

分别是黛博拉·蔻儿,朱迪·丹奇,艾琳·邓恩。

看过007系列电影的,对朱迪·丹奇应该会有些印象。

因为她曾在其中,扮演了邦德的上司,M夫人。

03 最佳男配角

第一名和男主角的情况类似,都是三次获奖。

只不过沃尔特·布伦南获奖时间都是在奥斯卡金像奖的初期。

即第9、11、13届获奖。

男配角陪跑的就有点多了...

「小李子」的第一次提名, 就是最佳男配角提名。

04 女配角

黛安娜·维斯特和谢丽·温特斯并列第一。

和男配角的情况相似,陪跑者也不少。

05 男演员

为什么又把所有的信息汇总了呢。

主要是因为观察到,「小李子」在男配角也有提名。

那么难免会出现,两边都有获奖的情况出现。

比如这里的杰克·尼科尔森,《蝙蝠侠》中小丑的饰演者。

他就获得了两个最佳男主角和一个最佳男配角奖项。

陪跑者和最佳男主角的一模一样。

一位彼德·奥图,一位理查德·伯顿。

06 女演员

发现梅丽尔·斯特里普一共获得了21次提名。

这应该是目前奥斯卡获得提名最多的演员了。

/ 04 / 总结

那么谁是当之无愧的陪跑王呢?

答案便是「彼德·奥图」,8次提名,0次获奖。

虽然「彼德·奥图」在男演员这方面没有获奖。

在2003年的时候,还是收获了奥斯卡的终身成就奖。

奥斯卡提名一直作为演员演技的一种殊荣。

哪怕是没有获奖,能够有提名也是一种很大的荣耀。

文章源码及相关文件已上传「GitHub」。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-02-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 法纳斯特 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档