Se connecter à IMDB
A tout fait cela avant? Il me semble qu'il devrait y avoir un service Web, mais je n'en trouve pas. Je suis en train d'écrire une application pour un usage personnel qui montrerait simplement des informations de base de IMDB.
9 réponses
il n'y a pas de service web disponible.
mais il y a assez de racloirs html écrits dans toutes les langues pour répondre à vos besoins!
j'ai utilisé le .NET 3.5 Imdb Services opensource project dans quelques projets personnels.
résultats google 1 minute:
- Perl: IMDB-Film
- Ruby: libimdb-ruby
- Python: IMDbPY
les bibliothèques pour IMDb semblent peu fiables à l'heure actuelle et très inefficaces. J'aimerais vraiment que IMDb crée un service web.
après un peu de recherche, j'ai trouvé une alternative raisonnable à IMDb . Il fournit toutes les informations de base telles que vue d'ensemble, année, évaluations, affiches, bandes-annonces, etc.:
Le Film De La Base De Données (TMDb) .
il fournit un service Web avec wrappers pour plusieurs langues et semble fiable jusqu'à présent. Les résultats de la recherche ont été, pour moi, plus précis ainsi.
la seule" API "que la Bmdi publie est un ensemble de fichiers de données en texte clair contenant des listes formatées d'acteurs, réalisateurs, films, etc. Vous auriez probablement besoin d'écrire votre propre analyseur à moins que quelqu'un a publié une pour votre langue. Essayez les recherches Google comme "api imdb "et"analyseur imdb".
un screen scraper pourrait être utile, mais ils interdisent spécifiquement scrapers dans leurs conditions d'utilisation.
bien que ceci ait été posté il y a plus de deux ans, voici un simple code 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()
save as imdb.py et puis exécuter comme dans shell ou terminal ou quoi que ce soit
si vous voulez des données xml, remplacez JSON par xml
veuillez noter que ceci utilise le imdbapi.com site web pour retourner un résultat json visitez ce site web pour voir plus d'options.
voici ma propre solution en utilisant 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 interdit scrapers, et de changer la mise en page de temps en temps, donc parsing HTML est une option, mais être prêt à ajuster votre code 2-3 fois par an (été là, fait cela, abandonné). Ils ont un service payant donnant un accès complet aux données, mais vous devrez également expliquer ce que c'est, et les convaincre que vous ne construisez pas un site web concurrentiel (j'avais un lien vers cela, mais il semble avoir changé et ne peut pas le trouver maintenant).
une autre alternative est d'exécuter la base de données IMDB sur votre machine locale. Java Movie Database importe les fichiers de la base de données IMDB, les convertit et fournit une copie locale d'IMDB. IMDB a certaines fonctionnalités que Java Movie Database N'a pas et visa-versa, mais si ce que vous recherchez est un accès rapide à toutes les données, il pourrait être intéressant de donner un essai.
maintenant il y a une API (non documentée) comme http://www.imdb.com/xml/find?json=1&q=Harry+Potter
. Voir est-ce que IMDB fournit une API?
TRYNT Heavy Technologies fournit (gratuitement) un service web pour extraire les données de base de L'IMDb -- consultez leur site à http://www.trynt.com/trynt-movie-imdb-api / . Ils disposent également d'un service distinct pour les données de télévision.