Pregunta

¿Hay alguna manera de extraer los datos deseados de un html sin formato que se ha escrito sin semántica sin ID y classes ? Quiero decir, supongamos que hay un archivo html guardado de una página web (perfil) y quiero extraer los datos como (por ejemplo) 'pasatiempos'. ¿Es posible hacer esto usando PHP?

¿Fue útil?

Solución

¡Use regex ! Bromeo, bromeo. Si conoce el estado de la misma página y se garantiza que el formato seguirá siendo lo suficientemente similar, puede intentar escribir un analizador manual. Alternativamente, hay muchas bibliotecas por ahí que analizarán html. No estoy lo suficientemente familiarizado con PHP como para recomendar uno, pero estoy seguro de que algunos Google pueden llevarlo lejos. He tenido suerte con el analizador de HTML puro JavaScript de John Resig antes.

Al final del día, si necesita información semántica de una página html que no está construida semánticamente, probablemente esté condenado programáticamente y su mejor opción puede ser un turk mecánico .

Otros consejos

Parece que está buscando un analizador PHP DOM, como este . Probablemente será un poco complicado extraer los datos que necesita si el HTML realmente carece de estructura semántica, pero un analizador DOM es el lugar para comenzar.

Sí, la técnica se llama web scraping . Puede usar el DOM si es html válido. Si la página se genera dinámicamente, el generador habría utilizado alguna estructura y, según mi experiencia, siempre puede aislar elementos de interés.

Si DOM no funciona para usted, puede usar expresiones regulares (eso es lo que siempre solía hacer al escribir web-spiders). Las expresiones regulares son más efectivas y más rápidas que escribir lógica de raspado contra una jerarquía DOM. Por lo tanto, debe abrir algunas de las páginas de perfil y analizar la estructura estática. Luego, simplemente escriba una expresión regular para aislar los campos de interés.

Hay dos enfoques para tomar con PHP. El primero es limpiar su documento usando la extensión ordenada para que sea XHTML válido y, por lo tanto, XML bien formado, y, por lo tanto, se puede analizar con herramientas XML.

El segundo es utilizar la versión PHP del html5lib parser, que intenta implementar la investigación HTML5 en las rutinas actuales de análisis del navegador. Si se muestra en un navegador, html5lib puede analizarlo.

Usando cualquiera de los enfoques, terminará con un objeto DOM que puede consultar utilizando expresiones xpath. Dado que sus documentos teóricos carecen de estructura semántica, querrá ver las partes del documento desde un "quinto tramo dentro del tercer p". mentalidad.

Más información aquí (advertencia de enlace automático).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top