Una vez que haya descargado la página, y comenzó a usar una biblioteca como HTML agilidad paquete para analizar el HTML, entonces su trabajo comienza raspado :)
pantalla está dividido en dos partes.
Primero el webcrawler (mucha información sobre esto en la web, y un código simple provisto aquí con WebClient por algunas otras respuestas). El rastreador debe atravesar enlaces y descargar páginas. Si está descargando muchas páginas y tiene la url de inicio, puede hacer las suyas propias, o usar una existente. Consulte Wikipedia para obtener una lista de webcrawlers/spiders de código abierto.
La segunda parte es analizar el html y extraer solo el texto que desee, y omitir cualquier ruido (encabezados, pancartas, pies de página, etc.). El simple hecho de atravesar el DOM es fácil con las bibliotecas existentes, y descubrir qué hacer con lo que analiza es la parte más difícil.
He escrito un poco al respecto en otro SO question y podría darle algunas ideas sobre cómo obtener manualmente el contenido que desea. Según mi experiencia, no hay una forma 100% de encontrar el contenido principal de una página, y la mayoría de las veces es necesario que le proporcione algunas sugerencias. La parte difícil es que si el diseño html de la página cambia, entonces su raspador de pantalla comenzará a fallar.
Se podría aplicar estadísticas y comparar el código HTML de varias páginas con el fin de deducir donde los anuncios, menús, etc son, a fin de eliminar aquellos.
Ya que mencionas sitios de noticias, hay otros dos enfoques que deberían ser más fáciles de aplicar a estos sitios en comparación con el análisis cabo el texto del HTML original.
- Compruebe si la página tiene una url de impresión. P.ej. un enlace en CNN tiene una url de impresión equivalente que es mucho más fácil de analizar.
- Compruebe si la página tiene una representación RSS, y elija el texto del artículo de la fuente RSS en su lugar. Si el feed no tiene todo el contenido, debería darle suficiente texto para ubicar el texto en la página html completa.
Consulte también The Easy Way to Extract Useful Text from Arbitrary HTML para obtener información sobre cómo crear un analizador sintáctico más general. El código está en Python, pero debería poder convertirlo sin demasiados problemas.
HTML Agility Pack ayuda aquí? –