elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Extraer contenido de una tabla de otra web
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Extraer contenido de una tabla de otra web  (Leído 8,378 veces)
javirk

Desconectado Desconectado

Mensajes: 102


Ver Perfil
Extraer contenido de una tabla de otra web
« en: 22 Marzo 2012, 22:23 pm »

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
  1. <td rowspan="2" id="img_primary">
  2.  
  3.  
  4. <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"
  5.     style="max-width:214px; max-height:317px;"
  6.     height="317"
  7.     alt="El jovencito Frankenstein Poster"
  8.     title="El jovencito Frankenstein Poster"
  9.     itemprop="image" /></a>
  10.  
  11. </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.


« Última modificación: 24 Marzo 2012, 16:10 pm por javirk » En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.723


<3


Ver Perfil WWW
Re: Extraer contenido de una tabla de otra web
« Respuesta #1 en: 23 Marzo 2012, 17:27 pm »

:http://pastebin.com/8QYAeXpQ


En línea

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

Mensajes: 5.850



Ver Perfil WWW
Re: Extraer contenido de una tabla de otra web
« Respuesta #2 en: 23 Marzo 2012, 18:03 pm »


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


Saludos
En línea

javirk

Desconectado Desconectado

Mensajes: 102


Ver Perfil
Re: Extraer contenido de una tabla de otra web
« Respuesta #3 en: 24 Marzo 2012, 14:26 pm »

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
  1. function extraer($cadena,$antes,$despues,$cuenta)
  2. {
  3.  /*Función para obtener extraer una subcadena
  4.   Creado por johandebruin.com el 29-12-2009*/
  5.  if(!$cuenta)
  6.    return false;
  7.  $localizacion1 = $localizacion2 = 0;
  8.  do
  9.  {
  10.    $localizacion1 = strpos($cadena,$antes,$localizacion1 + 1);
  11.    if($localizacion1 == false)
  12.      return false;
  13.    $cuenta--;
  14.  } while ($cuenta > 0);
  15.  $localizacion2 = strpos($cadena, $despues, $localizacion1 + 1);
  16.  if ($localizacion2 == false)
  17.    return false;
  18.  $localizacion1 += strlen($antes);
  19.  return substr($cadena,$localizacion1,$localizacion2 - $localizacion1);
  20. }

función que saca la URL de una web:
Código
  1. <?php
  2. class Url{
  3. public $mi_cadena;
  4. public $archivo;
  5. public $url;
  6.  
  7. public function sacar_url($mi_url){
  8. $this->archivo = fopen("$mi_url","r") or die ("No se ha encontrado la pagina.");
  9. while(!feof($this->archivo)){
  10. $this->cadena .= fgets($this->archivo, 4096);
  11. }
  12. }
  13. }
  14. ?>

Código
  1. <div id="cont_center" >
  2. <?php
  3. $email = $_SESSION["email_user"];
  4. $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));
  5. $usuario->consulta($sql);
  6. $usuario->extraer_registro();
  7. $fuente = new Url();
  8.  
  9. while($usuario->extraer_registro()){
  10. $cartel = $usuario->resultado['id_peli'];
  11. $url = "http://www.imdb.com/title/tt$cartel/";
  12. $fuente->sacar_url($url);
  13. //echo $fuente->cadena;
  14. $cadena_comienzo = '<table border="0" cellpadding="0" cellspacing="0" id="title-overview-widget-layout">
  15. <tr>';
  16. $cadena_fin = '<td id="overview-top">';
  17. echo extraer($fuente->cadena, $cadena_comienzo, $cadena_fin, 1);
  18.  
  19. }

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.
En línea

dimitrix


Desconectado Desconectado

Mensajes: 4.847



Ver Perfil WWW
Re: Extraer contenido de una tabla de otra web
« Respuesta #4 en: 26 Marzo 2012, 23:11 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?
En línea




Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.723


<3


Ver Perfil WWW
Re: Extraer contenido de una tabla de otra web
« Respuesta #5 en: 27 Marzo 2012, 02:11 am »

:http://www.php.net/manual/es/function.preg-match.php
En línea

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


Desconectado Desconectado

Mensajes: 4.847



Ver Perfil WWW
Re: Extraer contenido de una tabla de otra web
« Respuesta #6 en: 27 Marzo 2012, 10:42 am »

:http://www.php.net/manual/es/function.preg-match.php

Shell Root El problema es que no es 'igual'.
En línea




Pazador

Desconectado Desconectado

Mensajes: 39



Ver Perfil
Re: Extraer contenido de una tabla de otra web
« Respuesta #7 en: 27 Marzo 2012, 17:47 pm »

Código:
http://php.net/manual/es/function.stripos.php
En línea

La vida es un juego
Mario Bross
Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.723


<3


Ver Perfil WWW
Re: Extraer contenido de una tabla de otra web
« Respuesta #8 en: 27 Marzo 2012, 20:17 pm »

@dimitrix, dime que quieres hacer...
En línea

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


Desconectado Desconectado

Mensajes: 4.847



Ver Perfil WWW
Re: Extraer contenido de una tabla de otra web
« Respuesta #9 en: 28 Marzo 2012, 01:37 am »

@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...
En línea




Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines