2008-11-09 8 views
6

Mit IMDbPy es ist schmerzlich einfach zu erreichen Filme von der Website IMDB:Wie erhalten Sie ein Miniaturbild eines Films mit IMDbPy?

import imdb 

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

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

Allerdings sehe ich keine Möglichkeit, das Bild oder die Miniaturansicht des Filmabdeckung zu erhalten. Vorschläge?

Antwort

10

Hinweis:

  • Nicht jeder Film eine Abdeckung url. (Die zufällige ID in Ihrem Beispiel funktioniert nicht.)
  • Stellen Sie sicher, dass Sie eine aktuelle Version von IMDbPy verwenden. (IMDb ändert und IMDbPy mit ihm.)

...

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

Wenn aus irgendeinem Grund Sie nicht die oben verwenden können, können Sie immer so etwas wie BeautifulSoup können die Abdeckung URL zu erhalten .

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

Antwort der IMDbPy Mailingliste:

Falls vorhanden, ist die URL zugänglich durch Film [ 'cover url']. Hüten Sie sich vor , dass es fehlt könnte, so müssen Sie erster Test mit so etwas wie:
wenn ‚Cover url‘ in Film: ...

Danach können Sie die urllib Modul verwenden, um den Abruf Bild selbst.

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 der gleichen Art und Weise, ein Kopfschuss Person wird persönlich [ 'headshot'] gespeichert:

ein komplettes Beispiel zu liefern, etwas wie das den Trick tun soll.

  • Decken und Kopfschüsse sind nur verfügbar, das Abrufen der Daten aus dem Web-Server (über die ‚http‘ oder ‚mobile‘ Datenzugriffssysteme) und nicht im Klartext:

    Dinge bewusst sein, Datendateien ('sql' oder 'local').

  • Mit den Bildern müssen Sie die Bedingungen der IMDb-Richtlinie beachten. siehe http://imdbpy.sourceforge.net/docs/DISCLAIMER.txt
  • Die Bilder, die Sie erhalten, variieren in der Größe; Mit dem Python-Imaging-Modul können Sie sie bei Bedarf neu skalieren.
+1

'cover url' in Film gibt für mich, auch wenn seine dort falsch. – Sam

Verwandte Themen