私が持っているすべての映画のリストから、私が見ていないが好きな映画の正確な提案を返す一種の自家製アルゴリズムを作りたいと思っています。しかし、そのためには、IMDBpy が「提案」部分を返すことができるかどうかを知る必要があります。実際、Web サイトで映画を検索すると、検索した映画の種類に一致する映画のリストが表示されます。
しかし、IMDBpy のドキュメントで答えが見つかりません。提案を取得する方法はありますか?
get_movie_recommendations は実際には思いどおりに機能しないため (たとえば、12 年間のスレーブに対しては何も返さない)、BeautifulSoup を使用して推奨事項をスクレイピングすることができます。
import bs4
import imdb
import requests
src = requests.get('http://www.imdb.com/title/tt2024544/').text
bs = bs4.BeautifulSoup(src)
recs = [rec['data-tconst'][2:] for rec in bs.findAll('div', 'rec_item')]
print recs
これは以下を出力します:
['1535109', '0790636', '1853728', '0119217', '2334649', '0095953', '1935179', '2370248', '1817273', '1210166', '0169547', '1907668']
その後、IMDBpy でそれらの映画を検索できます...
ia = imdb.IMDb()
for rec in recs:
movie = ia.get_movie(rec)
print movie.movieID, movie.get('title')
...出力:
1535109 Captain Phillips
0790636 Dallas Buyers Club
1853728 Django Unchained
0119217 Good Will Hunting
2334649 Fruitvale Station
0095953 Rain Man
1935179 Mud
2370248 Short Term 12
1817273 The Place Beyond the Pines
1210166 Moneyball
0169547 American Beauty
1907668 Flight