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

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  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,872 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.724


<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

Te vendería mi talento por poder dormir tranquilo.
#!drvy
Moderador
***
Desconectado Desconectado

Mensajes: 5.855



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.724


<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

Te vendería mi talento por poder dormir tranquilo.
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.724


<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

Te vendería mi talento por poder dormir tranquilo.
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