Importons les paquets que nous avons installés il y a quelques minutes, ainsi que d'autres paquets utiles pour une utilisation ultérieure :
using CsvHelper;
using HtmlAgilityPack;
using System.IO;
using System.Collections.Generic;
using System.Globalization;
En dehors de notre fonction Main, vous allez créer une classe publique pour les titres de votre table des matières.
public class Row
{
public string Title {get; set;}
}
Revenons maintenant à la fonction Main : vous devez charger la page que vous souhaitez extraire. Comme je l'ai mentionné précédemment, nous allons voir ce que Wikipédia dit à propos de la Grèce !
HtmlWeb web = new HtmlWeb();
HtmlDocument doc = web.Load("https://en.wikipedia.org/wiki/Greece");
Notre prochaine étape consiste à analyser et à sélectionner les nœuds contenant les informations que vous recherchez, qui se trouvent dans les balises span avec la classe toctext.
varHeaderNames = doc.DocumentNode.SelectNodes("//span[@class='toctext']");
Que faire de ces informations maintenant ? Stockons-les dans un fichier .csv pour une utilisation ultérieure. Pour cela, vous devez d'abord parcourir chaque nœud que nous avons extrait précédemment et stocker son texte dans une liste.
CsvHelper se chargera du reste, en créant un fichier et en y écrivant les informations extraites.
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);
}