Foros del Web » Programando para Internet » PHP »

Problema en lectura de html

Estas en el tema de Problema en lectura de html en el foro de PHP en Foros del Web. Hola amigos, les cuento mi problema: Tengo que crear una funcion mediante la cual pueda acceder a una página de la wikipedia y sacar información ...
  #1 (permalink)  
Antiguo 23/09/2012, 14:03
 
Fecha de Ingreso: septiembre-2010
Mensajes: 79
Antigüedad: 14 años, 2 meses
Puntos: 1
Problema en lectura de html

Hola amigos, les cuento mi problema:

Tengo que crear una funcion mediante la cual pueda acceder a una página de la wikipedia y sacar información de ella.

Para ello, he pensado en hacerlo de la siguiente manera:
...

$ruta = "http://es.wikipedia.org/wiki/" . $nombre;


$document = new \DOMDocument();
@$document->loadHTMLFile($ruta);

$xpath = new \DOMXPath($document);

$title = $xpath->query("//*[@firstHeading]");

A partir de aqui para saber que es lo que estoy haciendo, ya que no he utilizado estas funciones antes, habia incluido varios var_dump() para ver si estoy recuperando bien la información xo no me funcionan.

Alguien puede ayudarme en el tema??
Si no es la mejor opción para llevar a cabo la función, de que forma podría hacerlo??

Espero sus respuestas y sugerencias.
Muchas gracias, saludos!!
  #2 (permalink)  
Antiguo 26/09/2012, 07:48
 
Fecha de Ingreso: mayo-2011
Mensajes: 214
Antigüedad: 13 años, 6 meses
Puntos: 16
Respuesta: Problema en lectura de html

yo personalmente te recomiendo la funcion fopen, y luego str_replace y explode para quedarte con el codigo que necessitas
  #3 (permalink)  
Antiguo 26/09/2012, 07:55
Avatar de Artificium  
Fecha de Ingreso: enero-2011
Mensajes: 492
Antigüedad: 13 años, 10 meses
Puntos: 81
Respuesta: Problema en lectura de html

Te recomiendo usar curl para obtener el string completo del html, no te recomiendo fopen porque a veces falla con URLs. La función para obtener el string está en esta página:

http://blog.ryanrampersad.com/2008/1...-curl-and-php/

Una vez obtenido el string lo cargas al objeto DOM de esta manera:

$document->loadHTML($html); //

Ahora, yo lo haría usando DOM y no xPath, (solamente porque estoy más familiarizado con DOM que con xPath), pero eso ya depende de ti.
  #4 (permalink)  
Antiguo 26/09/2012, 08:12
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 16 años, 5 meses
Puntos: 1012
Respuesta: Problema en lectura de html

lo más conveniente es usar las clases dom o incluso curl. si revisas la documentación en ningún lado aparece la barra
Cita:
$document = new \DOMDocument();
http://php.net/manual/es/domxpath.query.php
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #5 (permalink)  
Antiguo 26/09/2012, 08:47
 
Fecha de Ingreso: mayo-2011
Mensajes: 214
Antigüedad: 13 años, 6 meses
Puntos: 16
Respuesta: Problema en lectura de html

Cita:
Iniciado por Artificium Ver Mensaje
Te recomiendo usar curl para obtener el string completo del html, no te recomiendo fopen porque a veces falla con URLs. La función para obtener el string está en esta página:

http://blog.ryanrampersad.com/2008/1...-curl-and-php/

Una vez obtenido el string lo cargas al objeto DOM de esta manera:

$document->loadHTML($html); //

Ahora, yo lo haría usando DOM y no xPath, (solamente porque estoy más familiarizado con DOM que con xPath), pero eso ya depende de ti.

La verdad es que no se al 100% el funcionamiento de fopen, pero tengo entendido de que si pones la url correctamente (http://www.lokese.com) no tiene que haber ningun problema.
Ademas, como ha puesto un caso concreto como es la wikipedia y he podido comprovar de que si funciona se lo he recomendado por su facil utilizacion.
  #6 (permalink)  
Antiguo 26/09/2012, 09:50
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Problema en lectura de html

@IsaBelM

El uso de \ es necesario cuando estas usando namespaces para referirte a una clase del núcleo de PHP, ya que si no la va a buscar en el Namespace actual y te va a marcar error.

Saludos.
  #7 (permalink)  
Antiguo 26/09/2012, 14:53
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 16 años, 5 meses
Puntos: 1012
Respuesta: Problema en lectura de html

gracias GatorV por la info
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #8 (permalink)  
Antiguo 26/09/2012, 15:06
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 5 meses
Puntos: 1517
Respuesta: Problema en lectura de html

Pero hago una salvedad, solo es a los namespace, el caso del usuario es erroneo, no se usa new \Dom.... sino solamente new Dom...
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #9 (permalink)  
Antiguo 26/09/2012, 20:43
Avatar de Artificium  
Fecha de Ingreso: enero-2011
Mensajes: 492
Antigüedad: 13 años, 10 meses
Puntos: 81
Respuesta: Problema en lectura de html

Cita:
Iniciado por moro666 Ver Mensaje
La verdad es que no se al 100% el funcionamiento de fopen, pero tengo entendido de que si pones la url correctamente (http://www.lokese.com) no tiene que haber ningun problema.
Ademas, como ha puesto un caso concreto como es la wikipedia y he podido comprovar de que si funciona se lo he recomendado por su facil utilizacion.
No dije que fopen siempre falla, pero no es seguro, los programadores pueden hacer que cuando no se detecta que un navegador está haciendo la petición pues no devuelve nada o devuelve un texto determinado. Es más seguro user CURL porque se puede simular un navegador.
  #10 (permalink)  
Antiguo 27/09/2012, 05:53
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 16 años, 5 meses
Puntos: 1012
Respuesta: Problema en lectura de html

según esto http://php.net/manual/es/language.na...aq.shouldicare tanto new DOMDocument como new \DOMDocument son equivalentes. de echo lo he probado y en ninguno de los dos casos se ha producido error. estoy equivocada??
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #11 (permalink)  
Antiguo 27/09/2012, 07:04
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 5 meses
Puntos: 1517
Respuesta: Problema en lectura de html

A pues estoy desactualizado

Bueno segun el documento es correcto entonces
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #12 (permalink)  
Antiguo 27/09/2012, 10:27
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Problema en lectura de html

Exacto, si no estas en ningún namespace, tanto new Dom, como new \Dom funcionan, pero si estas adentro de un namespace, sí tienes que hacer referencia usando \.
  #13 (permalink)  
Antiguo 04/10/2012, 06:32
 
Fecha de Ingreso: septiembre-2010
Mensajes: 79
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: Problema en lectura de html

Muchas gracias a todos por vuestras respuestasss!! Me han ayudadoo muchooo!!

Etiquetas: html, lectura
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:18.