如何使用 IMDbPy 获得电影的缩略图?

Posted

技术标签:

【中文标题】如何使用 IMDbPy 获得电影的缩略图?【英文标题】:How do you get a thumbnail of a movie using IMDbPy? 【发布时间】:2010-09-21 11:59:51 【问题描述】:

使用IMDbPy 从 IMDB 网站访问电影非常容易:

import imdb

access = imdb.IMDb()
movie = access.get_movie(3242) # random ID

print "title: %s year: %s" % (movie['title'], movie['year'])

但是我看不出有什么办法可以得到电影封面的图片或缩略图。有什么建议吗?

【问题讨论】:

【参考方案1】:

注意:

并非每部电影都有封面网址。 (您示例中的随机 ID 没有。) 确保您使用的是最新版本的 IMDbPy。 (IMDb 发生变化,IMDbPy 也随之变化。)

...

import imdb

access = imdb.IMDb()
movie = access.get_movie(1132626)

print "title: %s year: %s" % (movie['title'], movie['year'])
print "Cover url: %s" % movie['cover url']

如果由于某种原因您不能使用上述方法,您可以随时使用 BeautifulSoup 之类的东西来获取封面 url。

from BeautifulSoup import BeautifulSoup
import imdb

access = imdb.IMDb()
movie = access.get_movie(1132626)

page = urllib2.urlopen(access.get_imdbURL(movie))
soup = BeautifulSoup(page)
cover_div = soup.find(attrs="class" : "photo")
cover_url = (photo_div.find('img'))['src']
print "Cover url: %s" % cover_url

【讨论】:

【参考方案2】:

来自 IMDbPy 邮件列表的回复:

如果存在,则该 url 可访问 通过电影['封面网址']​​。谨防 它可能会丢失,所以你必须 首先用类似的东西测试它: 如果电影中的“封面网址”: ...

之后,您可以使用 urllib 模块来获取图像本身。

为了提供一个完整的例子, 类似的事情应该做 技巧:

import urllib
from imdb import IMDb

ia = IMDb(#yourParameters)
movie = ia.get_movie(#theMovieID)

if 'cover url' in movie:
    urlObj = urllib.urlopen(movie['cover url'])
    imageData = urlObj.read()
    urlObj.close()
    # now you can save imageData in a file (open it in binary mode).

同理,一个人的爆头 存储在 person['headshot'] 中。

注意事项:

封面和头像只能从网络服务器获取数据(通过“http”或“移动”数据访问系统),而不是纯文本数据文件(“sql”或“本地”)。 使用图片,您必须遵守 IMDb 政策的条款;见http://imdbpy.sourceforge.net/docs/DISCLAIMER.txt 您将获得的图像大小会有所不同;如果需要,您可以使用 python-imaging 模块重新缩放它们。

【讨论】:

电影中的“封面网址”对我来说返回 false,即使它在那里。

以上是关于如何使用 IMDbPy 获得电影的缩略图?的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法在imdbpy中只获取影评的内容呢?

如何获得像谷歌文档一样的“缩略图文件”?

从 IMDbPy 结果中的电影目录中获取电影 ID

iphone SDK > 3.0 .视频缩略图?

Ffmpeg - 从 webm 格式创建缩略图并将 webm 电影转换为 flv 电影

如何使用 imdbpy 检索故事情节段落?