Някой правил ли е това преди? Струва ми се, че трябва да има уеб услуга, но не мога да намеря такава. Пиша приложение за лична употреба, което ще показва само основна информация от IMDB.
Свързване към IMDB
Отговори (10)
Няма налична уеб услуга.
Но има достатъчно html скрепери, написани на всеки език, за да отговарят на вашите нужди!
Използвал съм проекта с отворен код .NET 3.5 Imdb Services в няколко лични проекта.
1 минутни резултати в Google:
- Perl: IMDB-Film
- Ruby: libimdb-ruby
- Python: IMDbPY
Библиотеките за IMDb изглеждат доста ненадеждни в момента и изключително неефективни. Много ми се иска IMDb просто да създаде уеб услуга.
След известно търсене намерих разумна алтернатива на IMDb. Предоставя цялата основна информация като общ преглед, година, рейтинги, плакати, трейлъри и др.:
Той предоставя уеб услуга с обвивки за няколко езика и досега изглежда надежден. Резултатите от търсенето за мен също бяха по-точни.
Единственият „API“, публикуван от IMDb, е набор от файлове с обикновени текстови данни, съдържащи форматирани списъци с актьори , режисьори, филми и т.н. Вероятно ще трябва да напишете свой собствен анализатор, освен ако някой не е пуснал такъв за вашия език. Опитайте търсения с Google като „imdb api“ и „imdb parser“.
Скреперът на екрана може да е полезен, но те изрично забраняват скреперите в условията си за използване.
Въпреки че това беше публикувано преди повече от две години, ето прост код на 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 и след това стартирайте като в shell или terminal или каквото и да е друго
ако искате xml данни, просто заменете json с xml
моля, обърнете внимание, че това използва уебсайта imdbapi.com, за да върне json резултат, посетете този уебсайт, за да видите повече опции.
Ето моето собствено решение, използващо 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 );
IMDB забранява скреперите и променя оформлението на страницата от време на време, така че парсването на HTML е опция, но бъдете готови да коригирате кода си 2-3 пъти годишно (бил съм там, направил съм го, отказал съм се). Те наистина имат услуга, базирана на такса, която дава пълен достъп до данните, но вие също ще трябва да обясните за какво служи и да ги убедите, че не създавате конкурентен уебсайт (имах връзка към това, но изглежда да се е променил и не мога да го намеря сега).
Друга алтернатива е да стартирате IMDB базата данни на вашата локална машина. Java Movie Database импортира файловете на IMDB базата данни, преобразува ги и предоставя локално достъпно копие на IMDB. IMDB има някои функции, които Java Movie Database няма и обратното, но ако това, което търсите, е бърз достъп до всички данни, може би си струва да опитате това.
Сега има (недокументиран) API като http://www.imdb.com/xml/find?json=1&q=Harry+Potter
. Вижте IMDB предоставя ли API?
TRYNT Heavy Technologies предоставя (безплатно) уеб услуга за извличане на основни IMDb данни – вижте сайта им на http://www.trynt.com/trynt-movie-imdb-api/. Имат и отделна услуга за телевизионни данни.
Има поне един неофициален API на IMDb, наречен IMDb8. Той има около 31 крайни точки, включително
- актьори/списък-родени-днес
- актьори/get-awards-summary
- title/get-plots
- заглавие/получете топ-екипаж
и т.н. Както всеки друг API, той е много лесен за използване. Използвах този API за създаване на забавен проект с любопитни факти. Можете да намерите урок за това как да започнете тук.