2008-09-19 38 views
21

¿Alguien ha hecho esto antes? Me parece que debería haber un servicio web pero no puedo encontrar uno. Estoy escribiendo una aplicación para uso personal que solo mostraría información básica de IMDB.Conexión a IMDB

Respuesta

14

No hay servicio web disponible.

¡Pero hay suficientes raspadores html escritos en todos los idiomas para satisfacer sus necesidades!

He usado el .NET 3.5 Imdb Services opensource project en algunos proyectos personales.

1 hora resultados de Google:

+0

Gracias Estoy buscando esto para simplificar mi trabajo de proyecto en la universidad :) – nXqd

8

La única "API" publica la IMDb es un conjunto de plain-text data files que contiene listas formateadas de actores, directores, películas, etc. Probablemente necesitarás escribir tu propio analizador a menos que alguien lo haya lanzado e para tu idioma Prueba las búsquedas de Google como "imdb api" y "imdb parser".

Un raspador pantalla podría ser útil, pero específicamente prohibit scrapers en sus condiciones de uso.

+0

Es totalmente correcto sobre el hecho de que está prohibido el uso de raspadores, pero como es solo para uso personal, no lo haría un "espectáculo" tapón". –

4

IMDB prohíbe raspadores y cambia el diseño de página de vez en cuando, por lo que analizar HTML es una opción, pero prepárese para ajustar su código 2-3 veces al año (estado allí, hecho, abandonado). Tienen un servicio basado en tarifas que le da acceso completo a los datos, pero también tendrá que explicar para qué sirve y convencerlos de que no está creando un sitio web competitivo (tenía un enlace a eso, pero parece que haber cambiado y no poder encontrarlo ahora).

+0

Hola, no entiendo por qué imdb no permite webscraping pero te dan acceso completo a su información completa? ¿Sabe usted la razón? Simplemente no tiene sentido porque el raspado web solo está obteniendo datos de su sitio que ya proporcionan. – hlim

5

Aquí es mi propia solución utilizando expresiones regulares:

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); 
1

TRYNT pesados ​​Technologies proporciona (gratis) un servicio web para recuperar datos básicos IMDb - echa un vistazo a su sitio en http://www.trynt.com/trynt-movie-imdb-api/. También tienen un servicio separado para datos de televisión.

+0

¿Trynt está muerto? Ya hace algunos días que no funciona. –

+0

¡Sin suerte, servidor inactivo! – jv42

2

Otra alternativa es ejecutar la base de datos IMDB en su máquina local. Java Movie Database importa los archivos de la base de datos IMDB, los convierte y proporciona una copia de IMDB accesible localmente. IMDB tiene algunas funcionalidades que Java Movie Database no tiene y viceversa, pero si lo que está buscando es un acceso rápido a todos los datos, podría valer la pena intentarlo.

17

Las bibliotecas para IMDb parecen bastante poco fiable en la actualidad y altamente ineficiente. Realmente deseo IMDb simplemente crearía un servicio web.

Después de buscar un poco encontré una alternativa razonable al IMDb. Proporciona toda la información básica, como información general, años, clasificaciones, pósters, remolques, etc .:

The Movie Database (TMDb).

Proporciona un servicio web con wrappers for several languages y parece fiable hasta ahora. Los resultados de búsqueda han sido, para mí, más precisos también.

5

Aunque esto fue publicada hace más de dos años, aquí es un simple código 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() 

guardar como imdb.py y luego ejecutar como con cáscara o terminal o lo que sea

si desea que los datos XML simplemente reemplace json con xml

tenga en cuenta que esto está utilizando el sitio web imdbapi.com para devolver un resultado json visite ese sitio web para ver más opciones.