Kurzfassung: Für Web-Scraping in C und C++ verwenden Sie libcurl zum Herunterladen von Seiten und lexbor zum Parsen von HTML5 mit CSS-Selektoren; beide sind reines C, sodass ein Stack beide Sprachen abdeckt. Wählen Sie C++, wenn der Scraper Teil einer nativen Codebasis ist, auf eingeschränkter Hardware läuft oder große HTML-Mengen parst. Für schnelle einmalige Aufgaben ist Python schneller geschrieben.
Dieser Leitfaden zeigt Ihnen, wie Sie Websites in C und C++ (nicht C#) mit zwei portablen C-Bibliotheken auswerten können: libcurl zum Herunterladen von Seiten und lexbor zum Parsen von HTML5 mit CSS-Selektoren. Beide sind in reinem C geschrieben, sodass ein einziger Stack für beide Sprachen ausreicht. Außerdem lassen sie sich unter Windows, macOS und Linux auf dieselbe Weise installieren.
Sie erstellen einen C++20-Scraper für eine öffentliche Übungsbuchhandlung namens „Books to Scrape“. Dieser berücksichtigt die Paginierung, ruft jede Produktseite mit einem kleinen Thread-Pool auf und speichert saubere CSV- und JSON-Dateien. Anschließend bearbeiten Sie eine JavaScript-Seite auf „Quotes to Scrape“ auf drei verschiedene Arten: indem Sie die Daten direkt aus einem Script-Tag auslesen, sie mit Headless Chrome rendern und sie an eine Scraping-API übergeben. Abschließend sehen Sie den Kern-Scraper noch einmal als reines C-Programm. CMake und vcpkg erstellen alles aus einem einzigen Manifest.
Was du erstellen wirst:
- Einen Crawler, der „Weiter“-Links auf Produktlistenseiten höflich folgt.
- Einen Schritt für Produktseiten, der UPCs und Lagerbestände mit vier Worker-Threads hinzufügt.
- RFC 4180 CSV- und geordneter JSON-Export mit ganzzahligen Preisen.
- Drei Möglichkeiten, Daten von einer JavaScript-Seite abzurufen.
- Ein einfacher C17-Scraper, der auf denselben beiden Bibliotheken basiert.
Schreiben Sie stattdessen lieber C#? Unser C#-Leitfaden zum Web-Scraping behandelt HttpClient, AngleSharp und Playwright für .NET.




