IMDbPyを使用すると、IMDB サイトから映画に簡単にアクセスできます。
import imdb
access = imdb.IMDb()
movie = access.get_movie(3242) # random ID
print "title: %s year: %s" % (movie['title'], movie['year'])
ただし、映画の表紙の写真やサムネイルを取得する方法がわかりません。提案?
ノート:
...
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
IMDbPy メーリング リストからの応答:
存在する場合、url は movie['cover url'] からアクセスできます。欠落している可能性があることに注意してください。そのため、最初に次のような方法でテストする必要があります:
if 'cover url' in movie: ...その後、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'] に格納されます。
注意事項:
- 表紙と顔写真は、プレーン テキスト データ ファイル ('sql' または 'local') ではなく、Web サーバーから ('http' または 'mobile' データ アクセス システム経由で) データをフェッチする場合にのみ使用できます。
- 画像を使用する場合は、IMDb のポリシーの条件を尊重する必要があります。http://imdbpy.sourceforge.net/docs/DISCLAIMER.txtを参照してください。
- 得られる画像のサイズはさまざまです。必要に応じて、python-imaging モジュールを使用して再スケーリングできます。