synthroid taking instructions

Inicio > Programación Web > Extracción de datos de HTML

Extracción de datos de HTML

Miércoles, 26 de octubre de 2016 Dejar un comentario Ir a comentarios

Mucha gente trata de extraer el contenido de HTML – el primer enfoque siempre parece ser el uso de expresiones regulares, que son incapaces de analizar el código. Entonces, ¿cómo hacerlo bien con PHP?

Esto es bastante trivial e intuitivo de hacer – más simple que escribir expresiones regulares para la mayoría de la gente. PHP tiene esta fantástico extensión DOM, que se basa en libxml2 y no sólo puede trabajar con XML, sino también con HTML. Echemos un vistazo a un snippet para la extracción de todos los enlaces de una página web:

<?php
$oldSetting = libxml_use_internal_errors( true );
libxml_clear_errors();

$html = new DOMDocument();
$html->loadHtmlFile( 'http://jmacoe.com/blog/test.html' );

$xpath = new DOMXPath( $html );
$links = $xpath->query( '//a' );

foreach ( $links as $link )
{
        echo $link->getAttribute( 'href' ), "\n";
}

libxml_clear_errors();
libxml_use_internal_errors( $oldSetting );
?>

Eso es todo, y trabaja también para sitios web que no pasan los validadores, pero arroja un montón de errores. La función libxml_use_internal_errors (true) le dice al libxml que no exponga las advertencias y los errores a través del sistema de reporte de errores del PHP, pero las almacena internamente. Todos los errores de validación se pueden solicitar más adelante mediante la función libxml_get_errors(). También podemos limpiar los errores producidos, de esta manera obtenemos una nueva lista limpia – si algo pasó antes.

A continuación, sólo puedes cargar el archivo HTML, usando los métodos especiales loadHtml()loadHtmlFile(). Normalmente, debes utilizar la última, ya que la detección de codificación funciona mucho mejor. Estos métodos pueden controlar y corregir muchos errores comunes que se realizan en el marcado HTML y devolver una representación XML limpia.

Después de que puedes consultar el contenido del documento HTML usando XPath (TobyJakob acaba de publicar una guía completa y buena XPath). Y en la mayoría de los casos, ni siquiera se necesita cualquier consulta XPath compleja, pero sí un “//a” o similar realizara el trabajo.

El DOMNodeList devuelto es implementado a través de varias versiones, por lo que sólo puede iterar sobre él, usando foreach y realizar el procesamiento después. Y al final siempre se debe restablecer el reporte de error libxml al estado original para no meterse con otras partes de la aplicación.

Este ejemplo imprime la lista con todos los enlaces del documento HTML analizado, sin expresiones regulares complejas (que no siempre hacen lo correcto – nunca – esta desmotrado  – creanme), sino una consulta XPath trivial.

Recuerda que no todos los sitios web permiten copiar su contenido. Esto podría violar sus términos de servicio o fácilmente pueden violar los derechos de autor al incrustar contenidos copiados en tu aplicación. Utilizo con precaución.

Comparte y diviertete:
  • Print
  • Digg
  • StumbleUpon
  • del.icio.us
  • Facebook
  • Yahoo! Buzz
  • Twitter
  • Google Bookmarks
  • BarraPunto
  • Bitacoras.com
  • BlinkList
  • Blogosphere
  • Live
  • Meneame
  • MSN Reporter
  • MySpace
  • RSS
  • Suggest to Techmeme via Twitter
  • Technorati
  • LinkedIn
  • email
  • FriendFeed
  • PDF
  • Reddit
  • Wikio IT
  • Add to favorites
  • blogmarks
  • Cris-is

    Muy buena la explicación te pasaste!

  • Pingback: Bitacoras.com()

Top Footer
Scarpe Tods primavera estate 2017: Foto Collezione Streethogan outlet anche per lestate e molta attenzione alla cura deipeuterey outlet online dettagli pi minimali, senza altri fronzoli. Lopeuterey outlet online spirito Tods per la linea scarpe donna peuterey outlet online primavera estate 2017 ha un mood adatto peuterey outlet online Sandali bassi, mocassini e tacchi comodipeuterey outlet online con un fil rouge preciso: la tomaia woolrich outlet online incrociata sul collo del piede. Massima woolrich outlet online comodit, piede abbracciato dal pellame woolrich outlet online di alta qualit e colori che spaziano woolrich outlet online dal cuoio al verde acido, senza hogan outlet online dimenticare nero e bianco. hogan outlet online Il marchio di Della Valle ci sorprende.SCARPE TODS DONNA PRIMAVERA ESTATE 2017 Per la mezza stagione primaverile,hogan outlet online ecco le loafers Tods! Comode scarpe flathogan outlet online dallallure bon ton ma sempre urban style,hogan outlet online con quegli accenni jungle legati canada goose pas cher Le scarpe del catalogo Tods 2017 varianocanada goose pas cher dai modelli total white in pelle verniciata,canada goose pas cher al pi discreto nude in suede, senzadoudoune moncler pas cher dimenticare i tocchi fashion del blu doudoune moncler pas cher zaffiro e del silver. Tods propone anche ledoudoune moncler pas cher sneakers stringate, ancora un richiamo aldoudoune moncler pas cher Presentata in occasione della Paris Fashiondoudoune moncler pas cher Week, la nuova collezione Christian Diordoudoune moncler pas cher primavera estate 2017 ci incanta con linee woolrich sito ufficiale pulite e rigorose che plasmano un guardarobawoolrich sito ufficiale ai limiti della femminilit con lobiettivo woolrich sito ufficiale di dimostrare che anche un capo storicamente woolrich sito ufficiale maschile pu plasmare a valorizzare alla perfezione una silhouette delicata. Una collezione moda donna diverse dalle altre. woolrich sito ufficiale Una linea contemporanea che non tradisce la filosofia della maison. Dior sulle passerelle ci mostra una femminilit estremante eterogenea che guarda al futurowoolrich sito ufficiale Presentata nella capitale italiana della moda in occasione di Milano Fashion Week, la collezione primavera estate 2017 di Max Mara ispirata a Lina Bo Bardi, architetto e designer di fama internazionale.