奥斯卡,究竟谁一直在陪跑。
就在这礼拜,第91届奥斯卡金像奖落下了帷幕。
说实话,我对奥斯卡并不感冒。
之所以写这期内容,应该是因为莱昂纳多·迪卡普里奥,俗称「小李子」。
「小李子」在2016年,凭借着《荒野猎人》获得了第88届奥斯卡最佳男主角。
结束了自己陪跑奥斯卡22年的旅程。
这里有必要解释一下。
「小李子」并没有年年都入选奥斯卡的提名。
算起来应该共有5次提名,其中1次成功。
之所以是22年,是因为在1993年时候,他就获得了第66届奥斯卡最佳男配角的提名。
直到2016年才成功拿到小金人,这期间一共历时22年。
本次通过爬取历届的奥斯卡最佳男主角、男配角、女主角、女配角信息。
来看看谁才是当之无愧的陪跑王。
即经常被提名,但是从未获奖的演员。
/ 01 / 网页分析
奥斯卡的相关数据获取,来源于Mtime时光网。
网站没反爬,所以可以轻松获取到数据。
这里以最佳男主角为例,获取时间、获奖者及提名者。
通过一个循环,将最佳男主角、男配角、女主角、女配角信息拿到手。
/ 02 / 数据获取
时间、获奖者及提名者信息获取代码如下。
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」。
点击左下角阅读原文,即可获取。
万水千山总是情,点个「好看」行不行。
推荐阅读
··· END ···
支持小F原创 ☟