Подключение к IMDB - PullRequest
       21

Подключение к IMDB

21 голосов
/ 19 сентября 2008

Кто-нибудь делал это раньше? Мне кажется, что должен быть веб-сервис, но я не могу его найти. Я пишу приложение для личного использования, которое будет просто показывать основную информацию из IMDB.

Ответы [ 9 ]

17 голосов
/ 16 ноября 2010

Библиотеки для IMDb в настоящее время кажутся довольно ненадежными и крайне неэффективными. Мне бы очень хотелось, чтобы IMDb просто создал бы веб-сервис.

После небольшого поиска я нашел разумную альтернативу IMDb . Он предоставляет всю основную информацию, такую ​​как обзор, год, рейтинги, плакаты, трейлеры и т. Д.:

База данных фильмов (TMDb) .

Он предоставляет веб-сервис с оболочками для нескольких языков и до сих пор кажется надежным. Результаты поиска были для меня более точными.

14 голосов
/ 19 сентября 2008

Веб-сервис недоступен.

Но на каждом языке написано достаточно скребков HTML, чтобы удовлетворить ваши потребности!

Я использовал проект с открытым исходным кодом .NET 3.5 Imdb Services в нескольких личных проектах.

Результаты поиска в 1 минуту в Google:

8 голосов
/ 19 сентября 2008

Единственный «API», который публикует IMDb, - это набор файлов с текстовыми данными , содержащий отформатированные списки актеров, режиссеров, фильмов и т. Д. Вам, вероятно, потребуется написать собственный анализатор, если у кого-то выпустил один для вашего языка. Попробуйте поиск в Google, например, «imdb api» и «imdb parser».

Скребок для экрана может быть полезен, но они специально запрещают скребки в своих условиях использования.

5 голосов
/ 27 июня 2011

Хотя это было опубликовано более двух лет назад, вот простой код Python

import urllib2

movie_id = raw_input('Enter the ID of the movie: ')
json = urllib2.urlopen('http://imdbapi.com/?i=' + movie_id + '&r=json')

print json.read()

сохранить как imdb.py, а затем запустить как в оболочке или терминале или как угодно

если вам нужны данные XML, просто замените json на xml

обратите внимание, что при использовании веб-сайта imdbapi.com возвращается результат json, посетите этот веб-сайт для просмотра дополнительных параметров.

5 голосов
/ 21 сентября 2008

Вот мое собственное решение с использованием RegEx:

private const string UglyMovieRegex = "(?<=5>|3>)(Cast|Director:|Fun\\sStuff|Genre:|Plot:|Runtime:|Tagline:|Writers:)"
                                                + "|href=\"[\\w\\d/]+?(Genres|name|character)/([\\w]+?)/\".*?>([.\\-\\s\\w]+)</a>"
                                                + "|(?<=h\\d>)([.\\w\\s'\\-\"]+)(?=<a\\sc|</d|\\|)";

Regex MovieData = new Regex (UglyMovieRegex, RegexOptions.Compiled | RegexOptions.Multiline | RegexOptions.Singleline );
4 голосов
/ 19 сентября 2008

IMDB запрещает использование скребков и время от времени меняет макет страницы, поэтому вариант синтаксического анализа HTML - это вариант, но будьте готовы корректировать свой код 2-3 раза в год (уже там, но потом отказались). У них есть платная услуга, предоставляющая полный доступ к данным, но вам также нужно объяснить, для чего это нужно, и убедить их, что вы не создаете конкурентоспособный веб-сайт (у меня была ссылка на это, но, похоже, изменился и не может найти его сейчас).

2 голосов
/ 20 апреля 2013

Теперь есть (недокументированный) API, такой как http://www.imdb.com/xml/find?json=1&q=Harry+Potter. См. Предоставляет ли IMDB API?

2 голосов
/ 24 августа 2009

Другой альтернативой является запуск базы данных IMDB на вашем локальном компьютере. Java Movie Database импортирует файлы базы данных IMDB, преобразует их и предоставляет локально доступную копию IMDB. IMDB имеет некоторые функции, которых нет в Java Movie Database, и наоборот, но если вам нужен быстрый доступ ко всем данным, возможно, стоит попробовать.

1 голос
/ 14 ноября 2008

TRYNT Heavy Technologies предоставляет (бесплатно) веб-сервис для извлечения основных данных IMDb - посетите их сайт по адресу http://www.trynt.com/trynt-movie-imdb-api/. У них также есть отдельный сервис для телевизионных данных.

...