使用IMDbPy从IMDB网站访问电影非常容易:
import imdb
access = imdb.IMDb()
movie = access.get_movie(3242) # random ID
print "title: %s year: %s" % (movie['title'], movie['year'])
然而,我认为无法获得电影封面的图片或缩略图。建议?
答案 0 :(得分:10)
注意:强>
...
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
答案 1 :(得分:2)
来自IMDbPy邮件列表的回复:
如果存在,则可以访问该网址 通过电影['封面网址']。谨防 它可能会丢失,所以你必须 首先用以下方法测试:
如果在电影中'封面网址': ...之后,您可以使用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).
以同样的方式,一个人的爆头 存储在人['headshot']中。
需要注意的事项:
- 封面和爆头只能从网络服务器(通过'http'或'移动'数据访问系统)获取数据,而不能在纯文本数据文件('sql'或'local')中获取。 / LI>
- 使用图像,您必须遵守IMDb政策的条款;见http://imdbpy.sourceforge.net/docs/DISCLAIMER.txt
- 你会得到的图像大小不一;如果需要,你可以使用python-imaging模块重新缩放它们。