7

IMDbPyを使用すると、IMDB サイトから映画に簡単にアクセスできます。

import imdb

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

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

ただし、映画の表紙の写真やサムネイルを取得する方法がわかりません。提案?

4

2 に答える 2

10

ノート:

  • すべての映画にカバー URL があるわけではありません。(あなたの例のランダム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
于 2008-11-09T09:34:46.613 に答える
2

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 モジュールを使用して再スケーリングできます。
于 2008-11-09T11:01:02.867 に答える