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.

javirk

Hola, creo que la pregunta está clara, no sé cómo sacar el contenido de una web para ponerlo en la mía, o usarlo en parte. Sería una imagen de imdb.com, en concreto el cartel de una película, que va dentro de estas líneas:
Código (html4strict) [Seleccionar]
<td rowspan="2" id="img_primary">
   

<a    onclick="(new Image()).src='/rg/title-overview/primary/images/b.gif?link=%2Fmedia%2Frm3162935808%2Ftt0072431';"     href="/media/rm3162935808/tt0072431"    ><img src="http://ia.media-imdb.com/images/M/MV5BMTc2MzgwNjAzNV5BMl5BanBnXkFtZTcwNTUyNjQzMQ@@._V1._SY317_CR7,0,214,317_.jpg"
    style="max-width:214px; max-height:317px;"
    height="317"
    alt="El jovencito Frankenstein Poster"
    title="El jovencito Frankenstein Poster"
    itemprop="image" /></a>

</td>


A mí me gustaría sacar esa imagen, la que está entre <img>, claro, pero teniendo en cuenta que cambia según la película que busque.

La forma que se me ocurre es que PHP saque el código HTML generado y que busque la cadena de texto que le diga, en este caso la etiqueta <td rowspan="2" id="img_primary">, y que saque lo que hay ahí hasta que ponga </td>, pero no estoy seguro de que esto se pueda hacer, ¿alguna ayuda?

Un saludo y gracias.

Shell Root

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

#!drvy


El eregi ya no se recomienda usarlo pues esta marcado como obsoleto en php 5.3.


Saludos

javirk

vale, lo he conseguido, pero tengo unos cuantos problemas. Dejo lo que tengo:

función extraer, que quita una parte de una cadena:
Código (php) [Seleccionar]
function extraer($cadena,$antes,$despues,$cuenta)
{
  /*Función para obtener extraer una subcadena
  Creado por johandebruin.com el 29-12-2009*/
  if(!$cuenta)
    return false;
  $localizacion1 = $localizacion2 = 0;
  do
  {
    $localizacion1 = strpos($cadena,$antes,$localizacion1 + 1);
    if($localizacion1 == false)
      return false;
    $cuenta--;
  } while ($cuenta > 0);
  $localizacion2 = strpos($cadena, $despues, $localizacion1 + 1);
  if ($localizacion2 == false)
    return false;
  $localizacion1 += strlen($antes);
  return substr($cadena,$localizacion1,$localizacion2 - $localizacion1);
}


función que saca la URL de una web:
Código (php) [Seleccionar]
<?php
class Url{
public $mi_cadena;
public $archivo;
public $url;

public function sacar_url($mi_url){
$this->archivo fopen("$mi_url","r") or die ("No se ha encontrado la pagina.");
while(!feof($this->archivo)){
$this->cadena .= fgets($this->archivo4096); 
}
}
}
?>


Código (php) [Seleccionar]
<div id="cont_center" >
<?php
$email $_SESSION["email_user"];
$sql sprintf("select users_pelis.id_usuario, users_pelis.id_peli, users.email from users_pelis, users where users.email='%s' AND users_pelis.id_usuario = users.id_usuario"mysql_real_escape_string($email));
$usuario->consulta($sql);
$usuario->extraer_registro();
$fuente = new Url();

while(
$usuario->extraer_registro()){
$cartel $usuario->resultado['id_peli'];
$url "http://www.imdb.com/title/tt$cartel/";
$fuente->sacar_url($url);
//echo $fuente->cadena;
$cadena_comienzo '<table border="0" cellpadding="0" cellspacing="0" id="title-overview-widget-layout">
<tr>'
;
$cadena_fin '<td id="overview-top">';
echo extraer($fuente->cadena$cadena_comienzo$cadena_fin1);

}


En al bd tengo un id_usuario con un id_peli juntos, y el id_usuario tiene en otra tabla sus cosas asociadas, pero al ejecutar esto sólo me muestra la segunda fila, es decir, tengo en la bd:
id_usuario-----id_peli
1---------------34
1---------------65

Pero al ejecutar sólo sale el cartel correspondiente al id_peli 65, no el otro. ¿Sabéis por qué puede ser?

Un saludo.

dimitrix

Cita de: drvy | BSM en 23 Marzo 2012, 18:03 PM
El eregi ya no se recomienda usarlo pues esta marcado como obsoleto en php 5.3.


Saludos

Es cierto, pero no sabes como me toca las *****.

Más que nada por que no encontré ninguna alternativa 'similar' ¿Me recomiendas alguna?




Shell Root

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.


Pazador

http://php.net/manual/es/function.stripos.php
La vida es un juego
Mario Bross

Shell Root

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

dimitrix

Cita de: Shell Root en 27 Marzo 2012, 20:17 PM
@dimitrix, dime que quieres hacer...

Ahora ya lo hice, no me acuerdo que fue, pero recuerdo que eregi iba genial y tenía que migrarlo por que estaba 'obsoleto' y me costó Dios y la madre...