Así que aquí está el desafío ... Necesito crear HTML limpio a partir de páginas web aleatorias en la naturaleza. Mi objetivo es leer en una página y pasarla a una biblioteca que, a su vez, me devuelve el HTML perfectamente formado.Biblioteca de Java para limpiar HTML al igual que un navegador
No suena tan difícil, ¿verdad? Después de todo, todos los navegadores del mercado abordan eficazmente el desafío del HTML malformado y lo convierten en algo capaz de renderizar con casi cada carga de página. Cada uno tiene su propio algoritmo ligeramente particular para limpiar los contenidos (ejem. Para HTML < 5), pero tienden a hacer un muy buen trabajo al capturar lo que me gusta llamar la intención del autor. Entonces, ¿por qué no puedo encontrar una buena biblioteca de Java para esta misma tarea?
Una cosa para mencionar es que no me interesa en absoluto analizar el HTML como XML. Descubrí que las bibliotecas como NekoHTML, TagSoup, HtmlCleaner y JTidy (por nombrar algunas) están más enfocadas en resolver el problema de convertir a HTML en XML válido, y en el proceso, pierden de vista cómo el pobre- el documento formateado debe ser reestructurado. Con el desagradable HTML, con frecuencia no capturan la intención del autor y escuchan documentos que rinden de forma bastante diferente a la fuente original. Y para este proyecto, es de la mayor importancia que los dos documentos rindan de manera similar.
Soy bastante aficionado a Jericho HTML, pero no parece ser el candidato ideal para este trabajo ... al menos no sin mucho esfuerzo de mi parte. Además, las dependencias nativas son un no-go, por lo que el analizador de mozilla está fuera.
¿Alguien me puede ayudar en mi búsqueda del analizador HTML perfecto? ¡Gracias por adelantado!
Definame HTML mal formateado ... ¿se refiere a las sangrías correctas o simplemente al HTML malformado en general? El último es algo mucho más grande en alcance. –
Definitivamente estamos hablando de esto último. Para este proyecto, tengo que acceder a una página web, aplicar una serie de transformaciones y luego mostrar el resultado al usuario. Si el formato/diseño es significativamente diferente al HTML preprocesado, estoy en problemas. – stevevls