Tengo una página web cargada en el navegador (es decir, su DOM y el posicionamiento de elementos son accesibles para mí) y quiero encontrar el elemento de bloque (o una ordenada) lista de estos elementos), que probablemente contiene la mayor cantidad de contenido (como en un bloque continuo de texto). El objetivo es excluir cosas como menús, encabezados, pies de página y demás.Qué algoritmos podría usar para identificar contenido en una página web
Respuesta
Este es mi favorito personal: VIPS: a Vision-based Page Segmentation Algorithm
Primero, si necesita analizar una página web, usaría HTMLAgilityPack para transformarla a XML. Agilizará todo y te permitirá usar una XPath simple para ir directamente al CUERPO.
Después de eso, debe ejecutar todos los divs (puede obtener todos los elementos DIV en una lista del paquete de agilidad) y obtener lo que desee.
Hay una técnica simple de hacer esto, con base en el análisis de la forma en HTML "ruidoso" es, es decir, ¿cuál es la proporción de marcadores para texto que se muestra a través de una página HTML. The Easy Way to Extract Useful Text from Arbitrary HTML describe este tex, dando un poco de código python para ilustrar.
Cf. también el módulo Perl HTML::ContentExtractor, que implementa esta idea. Tendría sentido limpiar primero el html, si quieres usarlo, usando beautifulsoup.
Recomendaría la tesis de Vit Baisa en Web Content Cleaning, creo que tiene algún código también, pero no puedo encontrar un enlace para ello. También hay un discussion del mismo problema en el blog LingPipe de procesamiento de lenguaje natural.
- 1. Web scraping - cómo identificar contenido principal en una página web
- 2. Algoritmos para identificar el contenido generado por Markov
- 3. Algoritmos que reconocen la dirección física en una página web
- 4. Cómo identificar contenido mixto en el sitio web https
- 5. ¿Qué algoritmos usar para reducir la imagen?
- 6. ¿Cómo podría identificar de manera única una computadora en node.js?
- 7. ¿Por qué no simplemente usar ajax para las solicitudes de página para cargar el contenido de la página?
- 8. cómo codificar apóstrofes para una página web
- 9. Contenido central de la página web
- 10. Inyectando texto cuando se copia contenido de una página web
- 11. ¿Cómo puedo analizar el contenido dinámico de una página web?
- 12. CSS para insertar contenido en la página
- 13. enlace para imprimir en una página web
- 14. ¿Qué sucede cuando actualizamos una página web?
- 15. ¿Alguna idea sobre cómo identificar el contenido principal de la página?
- 16. ¿Qué metaetiqueta debo usar para indicar el autor del sitio web (no del contenido)?
- 17. Cómo establecer el título de la página desde una página de contenido web en ASP.NET 3.5
- 18. Usar CMYK en la página web
- 19. Cómo desvanecerse en una página web completa -
- 20. ¿Cómo usar archivos .svg en una página web?
- 21. detectar qué fuente se utilizó en una página web
- 22. Scraping para una "vista previa" de una página web - Python
- 23. Contenido ActiveX en una página web local, y "la marca de la web"
- 24. Algoritmos para laberintos 3D
- 25. Bibtex en una página web?
- 26. Cómo identificar la página solicitada en PHP
- 27. ¿Qué es una buena herramienta o sitio para usar para evaluar el rendimiento de una página web/sitio?
- 28. ¿Cómo puedo obtener el contenido de la página web
- 29. ¿Hay una resolución de página web estándar para teléfonos móviles?
- 30. Cómo descargar una página web en php
Me interesan más los tipos de criterios que podría utilizar para juzgar los distintos nodos candidatos. – VoY