我能够像这样得到电影的演员:
#!/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']
然而,这给了所有演员,我正在寻找电影的明星。例如,al pacino是神父的明星
答案 0 :(得分:3)
正如评论中所述,IMDb不知道“明星”的概念,但它确实知道演员阵容中的“顶级演员”。
这可能是基于电影的学分,但即使是IMDb也说仅为某些电影收费。
演员表的排序完全取决于电影以及谁在IMDb上验证数据。如果它显示“信用额度”,这意味着“按照它们在电影信用中引入的顺序”,但,信用排序可能是一些任意的顺序,电影导演感觉就像放置它们in。
例如,有些电影说“并且介绍......(某些演员没有人知道)”或者像电视节目那样说“特邀嘉宾明星......(大多数人认识的人)”。在这两种情况下,这些都是在引入整个常规演员之前/之后。
所以,如果你想要一部给定电影的前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