IMDbPY 获得一部电影的明星

Mar*_*oli -1 python imdb movie imdbpy

我能够像这样获得电影的演员阵容:

#!/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']
Run Code Online (Sandbox Code Playgroud)

然而,这给了所有演员,我只是在寻找电影中的明星。例如,阿尔帕西诺是教父中的明星

cri*_*007 5

正如评论中所述,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)
Run Code Online (Sandbox Code Playgroud)

输出

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
Run Code Online (Sandbox Code Playgroud)