我能够像这样获得电影的演员阵容:
#!/usr/bin/env python
import imdb
ia = imdb.IMDb()
s_result = ia.search_movie('The Untouchables')
the_unt = s_result[0]
print the_unt['cast']
然而,这给了所有演员,我正在寻找电影的明星。例如,阿尔帕西诺是教父中的明星
正如评论中所说,IMDb 不知道“明星”的概念,但它确实对演员阵容中的“顶级演员”有所了解。
它可能是基于电影的学分,但即使是 IMDb 也表示首先只对某些电影收费。
演员顺序完全取决于电影以及谁在 IMDb 上验证数据。如果它说“学分顺序”,则表示“按照他们在电影学分中引入的顺序”,但是,学分排序可以是电影导演觉得放置它们的任意顺序。
例如,有些电影会说“并介绍......(一些没人知道的演员)”或像电视节目所说的“特别嘉宾明星......(大多数人都认识的人)”。在这两种情况下,它们都是在引入整个常规演员表之前/之后。
所以,如果你想要某部电影的前 5 名演员,你可以这样做
import imdb
ia = imdb.IMDb()
search_results = ia.search_movie('The Godfather')
if search_results:
movieID = search_results[0].movieID
movie = ia.get_movie(movieID)
if movie:
cast = movie.get('cast')
topActors = 5
for actor in cast[:topActors]:
print "{0} as {1}".format(actor['name'], actor.currentRole)
输出
Marlon Brando as Don Vito Corleone
Al Pacino as Michael Corleone
James Caan as Sonny Corleone
Richard S. Castellano as Clemenza
Robert Duvall as Tom Hagen