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

 

 


Tema destacado: Curso de javascript por TickTack


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Parsear HTML con PHP – Simple HTML DOM Parser
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Parsear HTML con PHP – Simple HTML DOM Parser  (Leído 15,503 veces)
madpitbull_99
Colaborador
***
Desconectado Desconectado

Mensajes: 1.911



Ver Perfil WWW
Parsear HTML con PHP – Simple HTML DOM Parser
« en: 22 Mayo 2011, 16:21 pm »

Navegando por SourceForge me encontré con una interesante aplicación para parsear código HTML. Su nombre es PHP Simple HTML DOM  Parser y está orientada a parsear el DOM de HTML.

Primero vamos a descargarla e incluirla en nuestra aplicación de prueba. Un ejemplo básico de como utilizarla es:

Código
  1. <?php
  2.    //Basic HTML parsing with PHP
  3.    include("simplehtmldom/simple_html_dom.php");
  4.  
  5.    //Pasamos todo el contenido de la pagina a texto plano
  6.    //echo $htmlCode = file_get_html('http://madhacking.com')->plaintext;
  7.  
  8.    $htmlCode = file_get_html('http://madhacking.com');
  9.  
  10.    // Encontrar todas las imageness
  11.    foreach($htmlCode->find('img') as $element)
  12.       echo $element->src . '<br>';
  13.  
  14.    echo "<hr />";
  15.  
  16.    // Mostrar todos los links
  17.    foreach($htmlCode->find('a') as $element)
  18.       echo $element->href . '<br>';
  19.  
  20. ?>
  21.  

Vamos a hacer un ejemplo que muestre todos los artículos de mi blog:

Código
  1. <?php
  2.    $htmlCode = file_get_html('http://madhacking.com');
  3.    $posts = $htmlCode->find('div[class=post]');
  4.  
  5.    foreach($htmlCode->find('div[class=post]') as $article) {
  6.        $item['title']     = $article->find('h2', 0)->plaintext;
  7.        $item['info']      = $article->find('div[class=post-info]',0);
  8.        $item['body']      = $article->find('div[class=post-content]', 0)->plaintext;
  9.        $item['category']  = $article->find('div[class=post-meta]', 0)->plaintext;
  10.        $articles[] = $item;
  11.    }
  12.  
  13.    echo "<pre>";
  14.    print_r($articles);
  15.    echo "</pre>";
  16.  
  17. ?>
  18.  

Como podéis ver el funcionamiento es muy sencillo y no requiere esfuerzo programar algo sencillo. Os dejo los enlaces del proyecto.

Página Oficial: PHP Simple HTML DOM Parser - Manual de Uso

Si buscáis en SourceForge encontraréis proyectos similares, como:

_HTML Parser for PHP 4

_PHP Simple HTML SAX Parser

En NetTuts+ también hablan de esta librería para parsear HTML:  Parsing and Screen Scraping with the Simple HTML DOM Library.


En definitiva, se trata de una librería que no puede ahorrar mucho trabajo, si alguna vez has tenido que parsear HTML usando regex, lo entenderás.


En línea



«Si quieres la paz prepárate para la guerra» Flavius Vegetius

[Taller]Instalación/Configuración y Teoría de Servicios en Red
Nakp
casi es
Ex-Staff
*
Desconectado Desconectado

Mensajes: 6.336

he vuelto :)


Ver Perfil WWW
Re: Parsear HTML con PHP – Simple HTML DOM Parser
« Respuesta #1 en: 22 Mayo 2011, 20:05 pm »

Data Mining :D


En línea

Ojo por ojo, y el mundo acabará ciego.
madpitbull_99
Colaborador
***
Desconectado Desconectado

Mensajes: 1.911



Ver Perfil WWW
Re: Parsear HTML con PHP – Simple HTML DOM Parser
« Respuesta #2 en: 23 Mayo 2011, 21:27 pm »

He encontrado uno más que proporciona una sintaxis parecida a SQL para parsear: htmlSQL.

Sí, se podría decir que es Data Mining, pero no tienes que usar ningún algoritmo, ni redes neuronales.
En línea



«Si quieres la paz prepárate para la guerra» Flavius Vegetius

[Taller]Instalación/Configuración y Teoría de Servicios en Red
BlackM4ster


Desconectado Desconectado

Mensajes: 499


Error, el teclado no funciona. Pulse F1 para continuar


Ver Perfil WWW
Re: Parsear HTML con PHP – Simple HTML DOM Parser
« Respuesta #3 en: 1 Abril 2014, 09:54 am »

Alguien sabe como puedo procesar todos los elementos del html usando este parser?
Estoy usando éste code para sacar todos los <a>, pero necesito que procese todos (img, link, script, etc etc)

Código
  1. foreach($html->find('a') as $link) {
  2. Url_Absolutas_Cambio($link, $base_url);
  3. }
En línea

- Pásate por mi web -
https://codeisc.com
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Mostrar codigo fuente escondido por HTML Protector, HTML Guardian, Altrise, etc.
Desarrollo Web
sirdarckcat 1 14,152 Último mensaje 10 Enero 2012, 09:40 am
por gm-vl
Parsear html, ¿algo sencillo?
Java
Ragnarok 3 9,417 Último mensaje 5 Junio 2007, 18:20 pm
por alvk4r
Ayuda con caja de texto html(simple codigo?)
PHP
Tengu 5 4,440 Último mensaje 17 Julio 2007, 18:23 pm
por Tengu
HTML Parser [SRC]
Programación Visual Basic
cobein 1 2,652 Último mensaje 6 Diciembre 2009, 22:54 pm
por BlackZeroX
Parsear con PHP Simple HTML DOM
PHP
multi-media asdfg 5 6,462 Último mensaje 16 Julio 2011, 01:20 am
por multi-media asdfg
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines