Importieren wir die Pakete, die wir vor wenigen Minuten installiert haben, sowie einige weitere nützliche Pakete für die spätere Verwendung:
using CsvHelper;
using HtmlAgilityPack;
using System.IO;
using System.Collections.Generic;
using System.Globalization;
Außerhalb unserer Main-Funktion erstellen Sie eine öffentliche Klasse für die Titel Ihres Inhaltsverzeichnisses.
public class Row
{
public string Title {get; set;}
}
Kehren wir nun zur Main-Funktion zurück: Sie müssen die Seite laden, die Sie scrapen möchten. Wie bereits erwähnt, schauen wir uns an, was Wikipedia über Griechenland schreibt!
HtmlWeb web = new HtmlWeb();
HtmlDocument doc = web.Load("https://en.wikipedia.org/wiki/Greece");
Unser nächster Schritt besteht darin, die Knoten zu parsen und auszuwählen, die die gesuchten Informationen enthalten. Diese befinden sich in den span-Tags mit der Klasse toctext.
varHeaderNames = doc.DocumentNode.SelectNodes("//span[@class='toctext']");
Was sollst du nun mit diesen Informationen machen? Speichern wir sie in einer CSV-Datei für die spätere Verwendung. Dazu musst du zunächst jeden zuvor extrahierten Knoten durchlaufen und dessen Text in einer Liste speichern.
CsvHelper erledigt den Rest der Arbeit und erstellt eine Datei, in die die extrahierten Informationen geschrieben werden.
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);
}