Cómo extraer texto significativo desde HTML
-
09-10-2019 - |
Pregunta
Me gustaría analizar una página HTML y extraer el texto significativo de ella. Alguien sabe algunos algoritmos buenos para hacer esto?
I desarrollar mis aplicaciones sobre raíles, pero creo que el rubí es un poco lento en esto, así que creo que si existe alguna biblioteca bien en c para este sería apropiado.
Gracias !!
PD: Por favor, no recomendar nada con Java
ACTUALIZACIÓN: He encontrado esta texto del enlace
Por desgracia, es en python
Solución
Nokogiri , que es rápido y escrito en C , por Ruby.
(Uso de expresiones regulares para analizar expresiones recursivas como el HTML es notoriamente difícil y propenso a errores y yo no iría por ese camino . Sólo menciono esto en la respuesta ya que esta cuestión parece surgir una y otra vez.)
Con un analizador real, como por ejemplo Nokogiri mencionó anteriormente, también obtiene el beneficio adicional de que la estructura y la lógica del documento HTML se conserva, ya veces que realmente necesita esas pistas.
Otros consejos
Soluciones de integración con Rubí
- utilizar Nokogiri como recommended por Amigable Clark Kant
- hpricot
Soluciones externas
- Si está bien formado el código HTML, se podría utilizar el de Expat XML Parser para esto.
- Para algo más orientado hacia sólo HTML, el W3C lanzado en realidad el código de la libwww , que contiene una HTML simple analizador ( documentación ).
Lynx es capaz de hacer esto. Esto es de código abierto si quieres echar un vistazo a él.
Se debe quitar toda la parte de ángulo entre corchetes del texto y luego colapsar los espacios en blanco.
En teoría, el <
y >
no deberían estar allí en otros casos. Las páginas contienen <
y >
todas partes en lugar de ellos.
El colapso de los espacios en blanco:. Convertir todos los tabuladores, nuevas líneas, etc a los espacios, a continuación, reemplace cada secuencia de espacios a un solo espacio
ACTUALIZACIÓN:. Y usted debe comenzar después de encontrar la etiqueta <body>