Extraer contenido de una tabla de otra web

Iniciado por javirk, 22 Marzo 2012, 22:23 PM

0 Miembros y 1 Visitante están viendo este tema.

Og.

#10
Tal vez esto te sirva de algo.

Código (php) [Seleccionar]

function getImage($url) { // GET IMDB image
   try {
$doc = new DOMDocument();
$doc->loadHTML( file_get_contents($url) );
$xpath = new DOMXPath($doc);
return $xpath->query('//td[@id="img_primary"]/a/img')->item(0)->getAttribute('src');
   } catch( Exception $e ) { return null; }
}

echo getImage("http://www.imdb.com/title/tt0137523/");
|-

javirk

Muchas gracias Og. ya está funcionando, pero creo que es demasiado lento si quieres hacer más de una petición, hay alguna forma de acelerarlo? De todas maneras, así está bien.

Un saludo!

Og.

Bueno, cada que obtengas una imagen de cierto ID en IMDb puedes descargar y guardar la imagen con un el mismo ID de la entrada en IMDb, y insertar en una tabla de "visitados" una columna que te diga que ya visitaste ese ID.

Entonces el proceso quedaría así:

1.- Conoces el ID de la pag en IMDb
2.- haces una consulta a una tabla de tu DB que te diga si ya tienes esa imagen
si la tienes:
    devuelves el link local de la imagen que ya descargaste
si no la tienes:
    usas la función que te puse arriba para obtener el link de la imagen
    descargas la imagen a tu servidor
    metes un registro en tu DB
    devuelves el link de la imagen que acabas de descargar
|-

javirk

Hola, al final lo hice guardando el link de las imágenes ya visitadas en una base de datos, y todo funcionaba bien en localhost. Pero cuál es mi sorpresa, que al subirlo a un servidor web (nixiweb, en este caso) no se me ven las imágenes, pero en cambio si visito el link de la imagen y vuelvo a entrar, salen bien. He mirado la consola de errores de Chrome y me da un error 403 (Frobidden) para cada link:
"failed to load resource: the server responded with a status of 403 (forbidden)"
Es raro, porque esto en localhost no pasaba. ¿Puede ser porque nixiweb tenga alguna restricción?

Un saludo y gracias.