Importemos los paquetes que hemos instalado hace unos minutos, así como otros paquetes útiles para su uso posterior:
using CsvHelper;
using HtmlAgilityPack;
using System.IO;
using System.Collections.Generic;
using System.Globalization;
Fuera de nuestra función Main, crearás una clase pública para los títulos de tu índice.
public class Row
{
public string Title {get; set;}
}
Ahora, volviendo a la función Main, debes cargar la página que deseas rastrear. Como mencioné antes, ¡veremos lo que dice Wikipedia sobre Grecia!
HtmlWeb web = new HtmlWeb();
HtmlDocument doc = web.Load("https://en.wikipedia.org/wiki/Greece");
Nuestro siguiente paso es analizar y seleccionar los nodos que contienen la información que buscas, que se encuentra en las etiquetas span con la clase toctext.
varHeaderNames = doc.DocumentNode.SelectNodes("//span[@class='toctext']");
¿Qué debes hacer ahora con esta información? Guardémosla en un archivo .csv para usarla más adelante. Para ello, primero debes recorrer cada nodo que hemos extraído anteriormente y guardar su texto en una lista.
CsvHelper se encargará del resto, creando un archivo y escribiendo en él la información extraída.
var titles = new List<Row>();
foreach (var item in HeaderNames)
{
titles.Add(new Row { Title = item.InnerText});
}
using (var writer = new StreamWriter("your_path_here/example.csv"))
using (var csv = new CsvWriter(writer, CultureInfo.InvariantCulture))
{
csv.WriteRecords(titles);
}