Web Scraper mit C# in nur ein paar Minuten!
Suciu Dan am 12. Oktober 2022
Die Bedeutung des Sammelns von Informationen ist seit der Antike bekannt, und die Menschen, die dies zu ihrem Vorteil nutzten, haben es zu Wohlstand gebracht.
Heute können wir das viel einfacher und schneller mit einem Scraping-Tool machen, und es ist auch nicht schwer, einen eigenen Scraper zu erstellen. Sie haben die Möglichkeit, schneller Leads zu sammeln, sowohl die Konkurrenz als auch Ihre eigene Marke im Auge zu behalten und mehr zu erfahren, bevor Sie in Ideen investieren.
Zu diesem Zeitpunkt haben Sie es vielleicht schon gewusst.
Wenn Sie daran interessiert sind, mehr über Web Scraping zu erfahren oder wie Sie Ihr Tool in C# erstellen, sollten Sie mitmachen!
Ist Web Scraping legal?
Nun, es ist legal, solange die Website, die Sie scrapen wollen, damit einverstanden ist. Sie können das überprüfen, indem Sie "/robots.txt" an die URL-Adresse anhängen (z. B. http://httpbin. org/robots.txt) und die Berechtigungen lesen oder die AGBs der Website lesen.
Was ist Web Scraping mit C sharp?
Web Scraping ist eine automatisierte Technik, die von Unternehmen aller Größenordnungen eingesetzt wird, um Daten für verschiedene Zwecke zu extrahieren, z. B. zur Preisoptimierung oder zum Sammeln von E-Mails. Forscher nutzen Web Scraping, um Datenberichte und Statistiken zu sammeln, und Entwickler erhalten große Datenmengen für maschinelles Lernen.
Wie funktioniert das? Bei den meisten Web-Scraping-Tools müssen Sie nur die URL der Website angeben, von der Sie Daten extrahieren möchten. Je nach den Fähigkeiten des Scrapers werden die Informationen dieser Webseite in strukturierter Form extrahiert, so dass Sie sie analysieren und auf beliebige Weise bearbeiten können.
Beachten Sie, dass einige Scraper nur den HTML-Inhalt einer Seite betrachten, um die Informationen einer dynamischen Webseite zu sehen. In diesem Fall ist ein anspruchsvolleres Web-Scraping-Tool erforderlich, um die Aufgabe zu erledigen.
Der Einsatz eines Web Scrapers ist sehr nützlich, da er die Zeit, die Sie normalerweise mit dieser Aufgabe verbringen würden, reduzieren kann. Das manuelle Kopieren und Einfügen von Daten klingt nicht nach einer lustigen Sache, die man immer und immer wieder tun muss. Überlegen Sie einmal, wie viel Zeit es kosten würde, riesige Datenmengen zu sammeln, um eine KI zu trainieren! Wenn Sie mehr darüber erfahren möchten, warum Datenextraktion nützlich ist, schauen Sie doch mal rein!
Sehen wir uns an, wie wir unser Web-Scraping-Tool in nur wenigen Minuten erstellen können.
Erstellen eines eigenen Web Scrapers in C#
In diesem Tutorial werde ich Ihnen zeigen, wie ein Web Scraper in C# geschrieben werden kann. Ich weiß, dass die Verwendung einer anderen Programmiersprache wie Python für diese Aufgabe vorteilhafter sein kann, aber das bedeutet nicht, dass es unmöglich ist, es in C# zu tun.
Die Programmierung in C# hat einige Vorteile, wie z. B:
- Sie ist objektorientiert;
- Bessere Integrität und Interoperabilität;
- Es ist ein plattformübergreifendes Programm;
1. Auswählen der Seite, die Sie scrapen möchten
Als Erstes müssen Sie entscheiden, welche Webseite Sie scrapen wollen. In diesem Beispiel werde ich Griechenland auf Wikipedia scrapen und sehen, welche Themen im Inhaltsverzeichnis präsentiert werden. Dies ist ein einfaches Beispiel, aber Sie können es auch auf andere Webseiten übertragen.
2. Einsichtnahme in den Code der Website
Mit den Entwicklerwerkzeugen können Sie jedes Element inspizieren, um festzustellen, unter welchem Tag sich die benötigten Informationen befinden. Klicken Sie einfach mit der rechten Maustaste auf die Webseite und wählen Sie "inspizieren", woraufhin eine "Browser Inspector Box" erscheint.

Sie können die Klasse direkt im Abschnitt "Elemente" oder mit dem Inspektionstool auf der Webseite (siehe unten) suchen.

Sie haben also herausgefunden, dass sich die benötigten Daten im span-Tag mit der Klasse toctext befinden. Als Nächstes extrahieren Sie den gesamten HTML-Code der Seite, analysieren ihn und wählen nur die Daten innerhalb dieser speziellen Klasse aus. Lassen Sie uns zunächst einige Vorbereitungen treffen!
3. Bereiten Sie den Arbeitsbereich vor
Sie können jede IDE verwenden, die für Sie bequem ist. In diesem Beispiel werde ich Visual Studio Code verwenden. Sie müssen auch das .NET SDK installieren.
Nun müssen Sie Ihr Projekt erstellen. Zu diesem Zweck müssen Sie natürlich Visual Studio Code öffnen. Dann gehen Sie zum Menü Erweiterungen und installieren C# für Visual Studio Code.

Sie brauchen einen Ort, um unseren Code zu schreiben und auszuführen. Wählen Sie in der Menüleiste "Datei" > "Datei öffnen" (unter macOS "Datei" > "Öffnen") und erstellen Sie im Dialogfeld einen Ordner, der als unser Arbeitsbereich dienen wird.
Nachdem Sie den Arbeitsplatz erstellt haben, können Sie eine einfache "Hello World"-Anwendungsvorlage erstellen, indem Sie den folgenden Befehl im Terminal unseres Projekts eingeben:
dotnet neue Konsole
Ihr neues Projekt sollte folgendermaßen aussehen:

Als nächstes müssen Sie diese beiden Pakete installieren:
- HtmlAgilityPack ist ein in C# geschriebener HTML-Parser zum Lesen/Schreiben von DOM.
- CsvHelper ist ein Paket, das zum Lesen und Schreiben von CSV-Dateien verwendet wird.
Sie können sie mit diesen Befehlszeilen im Terminal Ihrer Projekte installieren:
dotnet-Paket csvhelper hinzufügen
dotnet-Paket htmlagilitypack hinzufügen
4. Schreiben des Codes
Importieren wir die Pakete, die wir vor ein paar Minuten installiert haben, und einige andere 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 der Funktion Main erstellen Sie eine öffentliche Klasse für die Titel Ihrer Inhaltsverzeichnisse.
public class Row
{
public string Title {get; set;}
}
Um nun zur Hauptfunktion zurückzukehren, müssen Sie die Seite laden, die Sie scrapen möchten. Wie ich bereits erwähnt habe, werden wir uns ansehen, 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 analysieren und auszuwählen, die die gesuchten Informationen enthalten, die sich in den span-Tags mit der Klasse toctext befinden.
varHeaderNames = doc.DocumentNode.SelectNodes("//span[@class='toctext']");
Was sollten Sie jetzt mit diesen Informationen tun? Wir speichern sie in einer .csv-Datei zur späteren Verwendung. Dazu müssen Sie zunächst die einzelnen Knoten, die wir zuvor extrahiert haben, durchlaufen und ihren Text in einer Liste speichern.
CsvHelper übernimmt den Rest der Arbeit, erstellt die extrahierten Informationen und schreibt sie in eine Datei.
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);
}
5. Ausführen des Codes
Der Code ist fertig, jetzt müssen wir ihn nur noch ausführen! Verwenden Sie diese Befehlszeile im Terminal. Stellen Sie sicher, dass Sie Ihre Datei vorher gespeichert haben!
Dotnet-Lauf
Sie sind fertig!
Ich hoffe, dieser Artikel hat Ihnen geholfen, die Grundlagen des Web Scraping mit C# besser zu verstehen.
Es ist sehr nützlich, einen eigenen Scraper zu haben, aber bedenken Sie, dass Sie immer nur eine Webseite auf einmal scrapen können und immer noch die Tags im HTML-Code der Website manuell auswählen müssen.
Wenn Sie mehrere andere Seiten scrapen wollen, ist es viel schneller, einen Scraper zu verwenden, als die Informationen manuell auszuwählen, ja, aber nicht alle Websites können mit dieser Methode gescraped werden. Einige Websites sind dynamisch, und mit diesem Beispiel lassen sich nicht alle Daten erfassen.
Haben Sie schon einmal darüber nachgedacht, ein vorgefertigtes und fortschrittlicheres Tool zu verwenden, das Ihnen beim Scrapen en masse hilft?
Wie wäre es, wenn Sie herausfinden, was eine API für Sie tun kann? Hier ist ein von WebScrapingAPI geschriebener Leitfaden, der Ihnen bei der Auswahl einer API helfen soll, die Ihren Anforderungen entsprechen könnte.
Bis zum nächsten Mal!
Nachrichten und Aktualisierungen
Bleiben Sie auf dem Laufenden mit den neuesten Web Scraping-Anleitungen und Nachrichten, indem Sie unseren Newsletter abonnieren.
We care about the protection of your data. Read our <l>Privacy Policy</l>.Privacy Policy.

Ähnliche Artikel

Sind XPath-Selektoren besser als CSS-Selektoren für Web Scraping? Erfahren Sie mehr über die Stärken und Grenzen der einzelnen Methoden und treffen Sie die richtige Wahl für Ihr Projekt!


Lernen Sie, wie man HTML-Tabellen mit Golang für eine leistungsstarke Datenextraktion scrapen kann. Erforschen Sie die Struktur von HTML-Tabellen und erstellen Sie einen Web-Scraper mit der Einfachheit, Gleichzeitigkeit und der robusten Standardbibliothek von Golang.


Meistern Sie Web-Scraping, ohne gesperrt zu werden! Befolgen Sie die Tipps zur Einhaltung der TOS, zur Verwendung von Proxys und zur Vermeidung von IP-Sperren. Extrahieren Sie Daten auf ethische und legale Weise.
