Se trata de un parseador implementado en PHP5+ que facilita enormemente manipular código HTML. Soporta HTML inválido y es capaz de encontrar etiquetas en una página HTML con selectores del estilo de jQuery.
Ejemplos:
- Obtener elementos de HTML
// Leer el DOM a partir de la URL $html = file_get_html('http://www.google.com/'); // Encuentra todas las imágenes foreach($html->find('img') as $element) echo $element->src . ' '; // Encuentra todos los enlaces foreach($html->find('a') as $element) echo $element->href . ' ';
- Modificar elementos HTML
// Crea una estructura DOM a partir de una cadena $html = str_get_html('
HolaMundo'); $html->find('div', 1)->class = 'barra'; $html->find('div[id=hola]', 0)->innertext = 'tonta'; echo $html; // Lo que genera:
tonta - Extrae contenido desde HTML
// Vuelca el contenido (sin etiquetas) de HTML, o sea, convertir a texto echo file_get_html('http://www.google.com/')->plaintext;
- Filtrado del código HTML de SlashDot.org
// Leer el DOM a partir de la URL $html = file_get_html('http://slashdot.org/'); // Encontrar todos los bloques de artículos foreach($html->find('div.article') as $article) { $item['title'] = $article->find('div.title', 0)->plaintext; // extrae el título $item['intro'] = $article->find('div.intro', 0)->plaintext; // extrae la intro $item['details'] = $article->find('div.details', 0)->plaintext; // extrae los detalles $articles[] = $item; } print_r($articles);
Pues está fantástico!!!
ResponderEliminarGenial justo lo que estaba necesitando!!!
ResponderEliminarA mí me sale este error:
ResponderEliminarCall to undefinied function file_get_html()
Probablemente porque no estás incluyendo la librería necesaria, SimpleHTMLDom, que está enlazada al principio del artículo.
ResponderEliminarJeje, pues era eso.
ResponderEliminarLa verdad es que un par me van a ser muy útiles.
Gracias :)))
Lo voy a probar al instante justo lo que andaba necesitando y con poco tiempo para hacerlo yo mismo :D Muchisimas gracias!!
ResponderEliminarHola a todos tengo un problema con un programa que he hecho con la libreria esta, en el servidor de mi casas funciona perfectamente pero al subirla al servidor no funciona aunque no me da ningun tipo de error el firefox se queda en blanco y el explorer me da problemas de conexion. Se le ocurre a alguien algo?
ResponderEliminarPara que funcione correctamente se tiene que hacer un include de la librería SimpleHTMLDom.
ResponderEliminarGracias por el aporte, me sera muy util
prueba agregando esto en el comienzo del codigo
ResponderEliminarset_time_limit(3600);
ini_set('memory_limit', '250M');
y activa la opcion mostrar errores desde htaccess de seguro de que tu proveedor hosting no lo tiene activo
Excelente post. Gracias
ResponderEliminarExcelente post muchas gracias muy útil realmente
ResponderEliminarNo habia visto este articulo. Excelente!!
ResponderEliminarAhora podre capturar noticias rss y poder ponerlas en mi web con mis propios estilos
Llevo bastante utilizando este parseador, es fantástico y me quita muchíiiismas horas de trabajo al extraer los datos, lo último fueron 299.000 registros de una base de datos (2.5h con el script), os imagianis cuántas horas serían manualmente?...
ResponderEliminarPero dependiendo de qué se quiere hacer se comiezan a descubrir carencias o limitaciones del parseador, supongo que de ahi viene el tema "Parseador Simple" jejeje
Lo que pretendo es que el script parsee cierta tabla en el que el ID se genera de manera dinámica. Estoy buscando como poder extraer el ID de la tabla por otras vias para poder enviarselo al script y poder parsear la tabla que contiene ese ID... alguien podría, al menos, señalarme el camino? grácias.
Me alegro, Carlos. Pero no puedo ayudarte. Hace mucho que dejé estar todo este mundo. Has probado a preguntar en el origen del código (autor)
ResponderEliminar