我正在开发一个网络应用程序,让用户可以告诉他们喜欢的电影,导演,电影编剧和演员.为此,我想为他们提供一个下拉列表或自动完成每个人,以便他们可以选择他们的选择.
为此:我需要一个列在Imdb上的所有电影片名,演员,导演,作家.
我检查了Imdbpy,它似乎没有提供获取此数据的方法.
将使用imdbpy2sql.py创建数据库并使用sql查询数据库,提供所需的数据?有没有其他方法可以做到这一点?
谢谢!
使用IMDbPy,从IMDB站点访问电影非常容易:
import imdb
access = imdb.IMDb()
movie = access.get_movie(3242) # random ID
print "title: %s year: %s" % (movie['title'], movie['year'])
Run Code Online (Sandbox Code Playgroud)
但是,我认为无法获得电影封面的图片或缩略图.建议?
我正在尝试创建一个数据集,允许我根据来自 Python IMDb API 的演员 ID 和电影 ID 加入演员和电影。现在,我正试图从演员的片目中提取电影 ID 列表,但无法做到。
例如,我知道 IMDb 上 Rodney Dangerfield 的 ID 是 0001098。我可以通过以下方式查看他的整个片目:
from imdb import IMDb
ia = IMDb()
actor_results = ia.get_person_filmography('0001098')
Run Code Online (Sandbox Code Playgroud)
它返回一个大字典。我可以看到他获得表演功劳的最新电影:
actor_results['data']['filmography'][0]['actor'][0]
Run Code Online (Sandbox Code Playgroud)
返回:
<Movie id:0179803[http] title:_Angels with Angles (2005)_>
Run Code Online (Sandbox Code Playgroud)
此对象类型是imdb.Movie.Movie
. 这个对象有几个键/值对:
In: results['data']['filmography'][0]['actor'][0].items()
Out:
[('title', 'Angels with Angles'),
('kind', 'movie'),
('year', 2005),
('canonical title', 'Angels with Angles'),
('long imdb title', 'Angels with Angles (2005)'),
('long imdb canonical title', 'Angels with Angles (2005)'),
('smart canonical title', 'Angels with Angles'), …
Run Code Online (Sandbox Code Playgroud) 我最近下载了IMDbpy模块..当我这样做时,
import imdb
help(imdb)
Run Code Online (Sandbox Code Playgroud)
我没有得到完整的文档..我必须这样做
im = imdb.IMDb()
help(im)
Run Code Online (Sandbox Code Playgroud)
查看可用的方法.我不喜欢这个控制台界面.有没有更好的阅读文档的方法.我是指在一个页面中与模块imdb相关的所有文档..
我已经安装了IMDbPY并通过IMDb文件和imdb2py脚本创建了一个数据库.现在我无法在我的脚本中使用该数据库.当我尝试使用数据库时,我收到以下错误:
>>> from imdb import IMDb
>>> i = IMDb('sql', uri='sqlite:/home/user/random/mov.db', useORM='sqlalchemy,sqlobject')
2013-06-04 11:20:25,977 WARNING [imdbpy.parser.sql.alchemy] /usr/lib/python2.7/dist-packages/imdb/parser/sql/alchemyadapter.py:38: Unable to import migrate.changeset: Foreign Keys will not be created.
Traceback (most recent call last):
File "<input>", line 1, in <module>
File "/usr/lib/python2.7/dist-packages/imdb/__init__.py", line 199, in IMDb
return IMDbSqlAccessSystem(*arguments, **keywords)
File "/usr/lib/python2.7/dist-packages/imdb/parser/sql/__init__.py", line 595, in __init__
self._connection = setConnection(uri, DB_TABLES)
File "/usr/lib/python2.7/dist-packages/imdb/parser/sql/alchemyadapter.py", line 484, in setConnection
engine = create_engine(uri, **params)
File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/__init__.py", line 332, in create_engine
return strategy.create(*args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/strategies.py", line 48, …
Run Code Online (Sandbox Code Playgroud) 最近,我使用IMDBpy API来抓取IMDB数据集.在此API中,有一个imdbpy2sql.py可以将IMDB影片数据集转换为SQL数据库.但是我找不到这个数据集的任何描述.所以我无法理解这个SQL数据库的架构.此数据库中有太多表.有什么方法可以知道吗?
我严格按照这个网站建立我的数据库http://blog.secaserver.com/2013/08/importing-imdb-sample-data-set-mysql/.
非常感谢!!
我完全不擅长处理异常,而且我一直在学习使用 IMDbPy。如果用户输入无效 ID,我想捕获异常。我试过
import imdb
from imdb import IMDbDataAccessError
ia = imdb.IMDb(accessSystem='http')
try:
movie = ia.get_movie('12121212212121')
except IMDbDataAccessError:
print("error")
Run Code Online (Sandbox Code Playgroud)
但它不会打印文本“错误”,而是显示错误消息。这是——
Run Code Online (Sandbox Code Playgroud)IMDbDataAccessError exception raised; args: ({'errcode': None, 'errmsg': 'None', 'url': 'https://www.imdb.com/title/tt12121212212121/reference', 'proxy': '', 'exception type': 'IOError', 'original exception': <HTTPError 404: 'Not Found'>},); kwds: {}
我想使用 IMDbY 中的 IMDBPY 检索特定电影 ID 的情节关键字。有什么想法吗?我只知道
from imdb import IMDb
ia = IMDb()
# get a movie and print its name
the_matrix = ia.get_movie('0133094')
print(the_matrix)
Run Code Online (Sandbox Code Playgroud) 我有一个actor对象,它有name和id,我可以取名字,但它不能取id
请看
>>> actor
<Person id:0000199[http] name:_Pacino, Al_>
>>> actor["name"]
u'Al Pacino'
>>> actor["id"]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/IMDbPY-5.0-py2.7-macosx-10.6-intel.egg/imdb/utils.py", line 1469, in __getitem__
rawData = self.data[key]
KeyError: 'id'
>>>
Run Code Online (Sandbox Code Playgroud) 我正在使用 imdbpy 来获取电影的评分。我已经成功安装了 imdbpy,但是在运行这个小代码时遇到了问题。这是代码:
from imdb import IMDb
ia = IMDb()
the_matrix = ia.get_movie('0133093')
print the_matrix['director']
Run Code Online (Sandbox Code Playgroud)
错误:
from imdb import IMDb
ImportError: cannot import name IMDb
Run Code Online (Sandbox Code Playgroud) 我能够像这样获得电影的演员阵容:
#!/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)
然而,这给了所有演员,我只是在寻找电影中的明星。例如,阿尔帕西诺是教父中的明星