Pruebe la biblioteca Beautiful Soup para Python. Tiene métodos muy simples para extraer información de un archivo html.
Tratar de extraer datos genéricamente de páginas web requeriría que las personas escriban sus páginas de manera similar ... pero hay una cantidad casi infinita de formas de transmitir una página que se ve idéntica y mucho menos todas las combinaciones que puede transmitir la misma información.
¿Hubo algún tipo de información que intentaba extraer o algún otro objetivo final?
Puede intentar extraer cualquier contenido en marcadores 'div' y 'p' y comparar los tamaños relativos de toda la información en la página. El problema entonces es que las personas probablemente agrupen información en colecciones de 'div' y 'p' (o al menos lo hacen si escriben html bien formado).
Tal vez si formara un árbol de cómo se relaciona la información (los nodos serían la 'p' o 'div o lo que sea y cada nodo contendría el texto asociado) podría hacer algún tipo de análisis para identificar el más pequeño' p 'o' div 'que abarca lo que parece ser la mayoría de la información ..?
[EDITAR] Tal vez si puede conseguirlo en la estructura de árbol que sugerí, podría utilizar un sistema de puntos similar al de spam assassin. Define algunas reglas que intentan clasificar la información. Algunos ejemplos:
+1 points for every 100 words
+1 points for every child element that has > 100 words
-1 points if the section name contains the word 'nav'
-2 points if the section name contains the word 'advert'
Si usted tiene una gran cantidad de reglas de puntuación baja que suman cuando encuentre más relevante mirando secciones, creo que podría convertirse en una técnica bastante potente y robusto.
[EDIT2] Al ver la legibilidad, ¡parece estar haciendo exactamente lo que acabo de sugerir! ¿Tal vez podría mejorarse para tratar de entender mejor las tablas?
Este JS guión para el bookmarklet legibilidad parece que funciona sorprendentemente bien: http://lab.arc90.com/experiments/readability/js/readability.js – jamtoday
¿Qué quiere decir por "significativo"? ¿Qué regla puede usar un programa para distinguir "significativo" de lo que se supone que debe excluirse? ¿Funciona esta regla universalmente? –
Por significativo, simplemente me refiero al tipo de contenido que extrae la legibilidad. Obviamente, esto no funcionaría bien en algunos tipos de sitios, pero en su mayoría busco blogs y sitios de noticias en los que desee extraer las más grandes cantidades de texto. – jamtoday