En bref : Pour le web scraping en C et C++, utilisez libcurl pour télécharger les pages et lexbor pour analyser le HTML5 avec des sélecteurs CSS ; les deux sont écrits en C pur, donc une seule pile sert les deux langages. Choisissez C++ lorsque le scraper s'intègre à une base de code native, tourne sur du matériel contraint ou analyse de gros volumes de HTML. Pour des tâches ponctuelles et rapides, Python s'écrit plus vite.
Ce guide vous explique comment extraire des données de sites web en C et C++ (et non en C#) à l’aide de deux bibliothèques C portables : libcurl pour télécharger des pages et lexbor pour analyser le code HTML5 à l’aide de sélecteurs CSS. Toutes deux sont écrites en C pur, ce qui permet d’utiliser une seule pile pour les deux langages. Elles s’installent également de la même manière sous Windows, macOS et Linux.
Vous allez créer un scraper C++20 pour une librairie publique d’entraînement, Books to Scrape. Il suit la pagination, visite chaque page produit à l’aide d’un petit pool de threads et enregistre des fichiers CSV et JSON propres. Vous traiterez ensuite une page JavaScript sur Quotes to Scrape de trois manières différentes : en lisant les données directement à partir d’une balise script, en les rendant avec Chrome headless, et en les transmettant à une API de scraping. Enfin, vous reverrez le scraper de base sous la forme d’un simple programme C. CMake et vcpkg se chargent de tout compiler à partir d’un seul manifeste.
Ce que vous allez créer :
- Un robot d’indexation qui suit poliment les liens « Suivant » sur les pages de listes de produits.
- Une étape dédiée aux pages de produits qui ajoute les codes UPC et les quantités en stock à l’aide de quatre threads de travail.
- Exportation au format CSV RFC 4180 et JSON ordonné avec des prix sous forme d’entiers.
- Trois méthodes pour extraire des données d’une page JavaScript.
- Un scraper C17 simple, basé sur les deux mêmes bibliothèques.
Vous préférez écrire en C# ? Notre guide de scraping web en C# couvre HttpClient, AngleSharp et Playwright pour .NET.




