Pregunta

Tengo una página web cargado en el navegador (es decir, su DOM y el posicionamiento de los elementos son tanto accesible para mí) y yo quiero encontrar el elemento de bloque (o una lista ordenada de estos elementos), que probablemente contiene la mayor parte del contenido (como en un bloque continuo de texto). El objetivo es excluir cosas como menús, encabezados, pies de página y tal.

¿Fue útil?

Otros consejos

En primer lugar, si es necesario analizar una página web, me gustaría utilizar HTMLAgilityPack para transformarla en un XML. Esto acelerará todo y le permitirá, mediante un sencillo XPath para ir directamente al cuerpo.

Después de eso, usted tiene que ejecutar en todos los divs (Usted puede obtener todos los elementos DIV en una lista del paquete de agilidad), y obtener lo que quiera.

No es una técnica simple de hacer esto, basado en el análisis de cómo "ruidoso" HTML está, es decir, ¿cuál es la proporción de marcadores para texto que se muestra a través de una página HTML. la manera fácil de extraer texto útil de arbitraria HTML describe este tex, dando algo de código pitón para ilustrar.

Cf. También el HTML :: ContentExtractor Perl módulo, que pone en práctica esta idea. No tendría sentido para limpiar el HTML en primer lugar, si se quería utilizar esto, usando BeautifulSoup.

Yo recomendaría la tesis de Vit Baisa en Web contenido de limpieza , creo que tiene algo de código también, pero no puedo encontrar un vínculo de éste. También hay un discusión del mismo problema en el procesamiento del lenguaje natural el blog LingPipe.

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