Foros del Web » Programando para Internet » PHP »

Leer datos inteligente de un HTML

Estas en el tema de Leer datos inteligente de un HTML en el foro de PHP en Foros del Web. Buenas tardes, Necesito leer datos de un html de forma inteligente, ¿Qué me recomendaís? He visto xpath pero la verdad no lo entiendo, mi página ...
  #1 (permalink)  
Antiguo 16/03/2013, 11:09
 
Fecha de Ingreso: abril-2008
Ubicación: Barcelona
Mensajes: 99
Antigüedad: 15 años, 11 meses
Puntos: 0
Leer datos inteligente de un HTML

Buenas tardes,


Necesito leer datos de un html de forma inteligente, ¿Qué me recomendaís?

He visto xpath pero la verdad no lo entiendo, mi página sería un html, no xml!!


La página en concreto, tiene el siguiente HTML que me interesa:

Código HTML:
 <div class="moto-header-2-info">
                            <div class="left">
                                <h3 class="title03">Datos de la moto</h3>
                                <ul class="list07">
                                    
                                        <li><span class="light">Matrícula:</span> aaaaaaaaaa</li>
                                    
                                    
                                        <li><span class="light">Año matriculación:</span> 2012</li>
                                    
                                    
                                        <li><span class="light">Marca:</span> BMW</li>
                                    
                                    
                                        <li><span class="light">Localidad:</span> MADRID</li>
                                    
                                                                       
                                </ul>		
                            </div> 


Lo que yo quiero es poder obtener como variables, la matrícula, año matriculación, marca y localidad. Lo que esta dentro ul class="list07".


Necesito que sea inteligente, ya que a veces no está disponible el año de matriculación o hay más datos.


Graciassss
  #2 (permalink)  
Antiguo 16/03/2013, 11:34
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 15 años, 11 meses
Puntos: 2534
Respuesta: Leer datos inteligente de un HTML

HTML es una sub-formato de XML así que no hagas juicios sin conocer.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 16/03/2013, 11:37
 
Fecha de Ingreso: abril-2008
Ubicación: Barcelona
Mensajes: 99
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: Leer datos inteligente de un HTML

okok perdona yo no soy un experto :(

cómo se podría entonces obtener dichas variables??
  #4 (permalink)  
Antiguo 16/03/2013, 11:39
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 15 años, 11 meses
Puntos: 2534
Respuesta: Leer datos inteligente de un HTML

Pues busca una librería que te permita acceder al DOM de lo que intentas leer, busca en el manual oficial de PHP.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 16/03/2013, 11:40
 
Fecha de Ingreso: abril-2008
Ubicación: Barcelona
Mensajes: 99
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: Leer datos inteligente de un HTML

encontré xpath que es para eso pero no entiendo cómo funciona...
  #6 (permalink)  
Antiguo 16/03/2013, 11:45
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 15 años, 11 meses
Puntos: 2534
Respuesta: Leer datos inteligente de un HTML

Para eso es la documentación, si no sabes como funciona entonces estudias cómo.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 16/03/2013, 11:50
 
Fecha de Ingreso: abril-2008
Ubicación: Barcelona
Mensajes: 99
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: Leer datos inteligente de un HTML

pues sino entiendo la documentación http://schlitt.info/opensource/blog/0704_xpath.html los foros están para preguntar dudas... sino quieres responderme perfecto, espero que otra persona sí me ayude.

el problema es que la documentación que encontré trabajan con xml y por eso con html no entiendo como se haría...
  #8 (permalink)  
Antiguo 16/03/2013, 11:52
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 15 años, 11 meses
Puntos: 2534
Respuesta: Leer datos inteligente de un HTML

Pues es que entonces dinos exactamente lo que no entiendes, con ejemplos, tampoco vamos a adivinar la parte que no te queda clara.

Te hace falta iniciativa al respecto, te sugiero leer las normas del foro para que entiendas como funciona.

De otra forma es como si nos pidieras leer toda la documentación y llevarte de la mano.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #9 (permalink)  
Antiguo 16/03/2013, 12:06
Avatar de rottenp4nx  
Fecha de Ingreso: octubre-2012
Ubicación: Santiago
Mensajes: 417
Antigüedad: 11 años, 5 meses
Puntos: 36
Respuesta: Leer datos inteligente de un HTML

Podrías usas Javascript y Ajax :)

Saludos
  #10 (permalink)  
Antiguo 16/03/2013, 17:44
Avatar de portalmana  
Fecha de Ingreso: septiembre-2007
Ubicación: Montevideo-Uruguay
Mensajes: 633
Antigüedad: 16 años, 6 meses
Puntos: 80
Respuesta: Leer datos inteligente de un HTML

Este ejemplo te puede dar una idea.
Lo que te puede suceder es que existen sitios que no funciona file_get_contents para levantar la pagina y deberás usar curl.
Código PHP:
Ver original
  1. <?php
  2.  
  3. $htmlContent    = file_get_contents('http://www.tupagina.com/');
  4. $dom            = new DOMDocument();
  5. $dom            ->loadHTML($htmlContent);
  6.  
  7. // Cargo los errores si existen
  8. $errores    = libxml_get_errors();
  9. // limpio el buffer de errores.
  10. // Los errores quedan cargados en la variable errores como array
  11.  
  12.  
  13. $xpath = new DOMXPath($dom);
  14. $nodos = $xpath->query('//ul/li');
  15.  
  16. echo "Se encontró {$nodos->length} en el sitio<br>";
  17. foreach ($nodos as $nodo) {
  18.     $elemento  = $nodo->nodeValue;
  19.     echo "$elemento <br>";
  20. }

En el manual de php existen mas ejemplos sobre esto.

Saludos
__________________
"La imaginación es más importante que el conocimiento. El conocimiento es limitado, mientras que la imaginación no" -- A.Einstein
objetivophp.com,twitter.com/objetivophp

Etiquetas: html, inteligente, variables
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 05:41.