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

发布于 2024-07-08 18:59:13 字数 298 浏览 14 评论 0原文

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

import imdb

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

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

但是我看不到如何获取图片或缩略图的电影封面。 建议?

Using IMDbPy it is painfully easy to access movies from the IMDB site:

import imdb

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

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

However I see no way to get the picture or thumbnail of the movie cover. Suggestions?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

古镇旧梦 2024-07-15 18:59:13

注意:

  • 并非每部电影都有封面网址。 (您的示例中的随机 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 之类的东西来获取封面网址。

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

Note:

  • Not every movie has a cover url. (The random ID in your example doesn't.)
  • Make sure you're using an up-to-date version of IMDbPy. (IMDb changes, and IMDbPy with it.)

...

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']

If for some reason you can't use the above, you can always use something like BeautifulSoup to get the cover 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
溺孤伤于心 2024-07-15 18:59:13

来自 IMDbPy 邮件列表的回复:

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

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

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

导入 urllib 
  从 IMDB 导入 IMDb 

  ia = IMDb(#yourParameters) 
  电影 = ia.get_movie(#theMovieID) 

  如果电影中有“封面网址”: 
      urlObj = urllib.urlopen(电影['封面网址']​​) 
      imageData = urlObj.read() 
      urlObj.close() 
      # 现在您可以将 imageData 保存在文件中(以二进制模式打开)。 
  

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

需要注意的事项:

  • 封面和头像只能从网络服务器获取数据(通过“http”或“移动”数据访问系统),而不能在纯文本数据文件(“sql”或“本地”)中获取。< /里>
  • 使用图像时,您必须尊重 IMDb 政策条款; 请参阅http://imdbpy.sourceforge.net/docs/DISCLAIMER.txt
  • 您将获得的图像尺寸会有所不同; 如果需要,您可以使用 python-imaging 模块重新调整它们。

Response from the IMDbPy mailing list:

If present, the url is accessible
through movie['cover url']. Beware
that it could be missing, so you must
first test it with something like:
if 'cover url' in movie:
...

After that, you can use the urllib
module to fetch the image itself.

To provide a complete example,
something like that should do the
trick:

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).

In the same way, a person's headshot
is stored in person['headshot'].

Things to be aware of:

  • covers and headshots are available only fetching the data from the web server (via the 'http' or 'mobile' data access systems), and not in the plain text data files ('sql' or 'local').
  • using the images, you must respect the terms of the IMDb's policy; see http://imdbpy.sourceforge.net/docs/DISCLAIMER.txt
  • the images you'll get will vary in size; you can use the python-imaging module to rescale them, if needed.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文