cURL : De quoi s’agit-il, et comment pouvez-vous l’utiliser pour le web scraping?

cURL est une commande polyvalente utilisée par les programmeurs pour la collecte et le transfert de données. Mais comment pouvez-vous utiliser cURL pour le web scraping ? Cet article vous aidera à vous lancer.
8 min de lecture

Dans cet article, vous découvrirez :

Qu’est-ce que cURL ?

cURL est un outil de ligne de commande que vous pouvez utiliser pour transférer des données via des protocoles réseau. Le nom cURL signifie « URL client » et s’écrit également « curl ». Cette commande populaire utilise la syntaxe URL pour transférer des données vers et depuis des serveurs. Curl est alimenté par libcurl, bibliothèque de transfert d’URL côté client, gratuite et facile à utiliser.

Pourquoi utiliser cURL est-il avantageux ?

Grâce à la polyvalence de cette commande, vous pouvez utiliser curl dans de nombreux contextes, notamment :

  • Authentification d’utilisateur
  • Posts HTTP
  • Connexions SSL
  • Prise en charge de proxys
  • Téléchargements FTP

Le cas d’utilisation le plus simple de curl est généralement le téléchargement de sites web entiers à l’aide de l’un des protocoles pris en charge.

Protocoles curl

Bien que la liste des protocoles pris en charge par curl soit longue, curl utilise HTTP par défaut si vous n’indiquez pas de protocole spécifique. Voici la liste des protocoles pris en charge :

cURL command - list of supported protocols - dict, file, ftp, ftps, gopher, http, https, imap, imaps, ldap, pop3, stmp, rtsp, scp, sftp, smb, sms, telnet, tftp

Installation de curl

La commande curl est installée par défaut dans les distributions Linux.

Comment vérifier si curl est déjà installé ?

1. Ouvrez votre console Linux

2. Tapez curl, puis appuyez sur Entrée.

3. Si curl est déjà installé, le message suivant s’affiche :

terminal window cURL try -help -manual commands

4. Si curl n’est pas déjà installé, le message suivant s’affiche : « command not found ». Vous pouvez ensuite vous tourner vers votre package de distribution et l’installer (voir les détails ci-dessous).

Comment utiliser cURL

La syntaxe de curl est assez simple :

command line Curl options url

Par exemple, si vous voulez télécharger une page web – appelons-la par exemple webpage.com – entrez simplement :

curl command line webpage.com

La commande vous donne alors le code source de la page dans la fenêtre de votre terminal. Gardez à l’esprit que si vous ne spécifiez pas de protocole, curl choisira HTTP par défaut. Vous trouverez ci-dessous un exemple de définition de protocoles spécifiques :

ftp cURL command line syntax

Si vous oubliez d’ajouter le ://, curl devinera le protocole que vous souhaitez utiliser.

Nous venons de parler brièvement de l’utilisation de base de la commande, mais vous pouvez trouver une liste d’options sur le site de documentation de curl. Ces options sont les actions possibles que vous pouvez effectuer sur l’URL. Lorsque vous choisissez une option, celle-ci indique à curl quelle action effectuer sur l’URL que vous avez indiquée. L’URL indique à cURL où cette action doit être effectuée. cURL vous permet ensuite de répertorier une ou plusieurs URL.

Pour télécharger plusieurs URL, ajoutez à chaque URL le préfixe -0 suivi d’un espace. Vous pouvez faire cela sur une seule ligne ou écrire une ligne distincte pour chaque URL. Vous pouvez également télécharger une partie d’une URL en énumérant les pages pertinentes. Par exemple :

curl command line for multiple pages on website

Enregistrement du téléchargement

Vous pouvez enregistrer le contenu de l’URL dans un fichier en utilisant curl avec deux méthodes différentes :

1. La méthode -o : permet d’ajouter un nom de fichier dans lequel l’URL sera enregistrée. Cette option a la structure suivante :

Command line CURL filename

2. La méthode -O : ici, vous n’avez pas besoin d’ajouter un nom de fichier, car cette option vous permet d’enregistrer le fichier sous le nom de l’URL. Pour utiliser cette option, il vous suffit d’ajouter le préfixe -O à l’URL.

Reprise du téléchargement

Il se peut que votre téléchargement s’arrête au milieu. Dans ce cas, réécrivez la commande en ajoutant l’option -C au début :

curl filename as URL

Pourquoi cURL est-il si populaire ?

Curl est vraiment le « couteau suisse » des commandes ; il a été créé pour effectuer des opérations complexes. Cependant, il existe des alternatives, par exemple « wget » ou « Kurly », qui conviennent pour des tâches plus simples.

Curl est l’une des commandes favorites des développeurs, car il est disponible sur presque toutes les plateformes. Parfois, curl est même installé par défaut. Cela signifie que, quels que soient les programmes/tâches que vous exécutez, les commandes curl doivent fonctionner.

En outre, si votre système d’exploitation a moins de 10 ans, il est probable que curl soit déjà installé. Vous pouvez également lire les documents dans un navigateur et vérifier la documentation curl. Si vous exécutez une version récente de Windows, curl est probablement déjà installé. Si ce n’est pas le cas, consultez ce post sur Stack Overflow pour en savoir plus sur la manière de procéder.

Utilisation de cURL avec des proxys

Certaines personnes préfèrent utiliser cURL en association avec un proxy. Les avantages sont les suivants :

 

  1. Augmentation de la capacité à gérer les requêtes de données provenant de différents emplacements géographiques.

     

  2. Augmentation exponentielle du nombre de tâches pouvant être exécutées simultanément sur des données.

Pour ce faire, vous pouvez utiliser les fonctionnalités -x et (- – proxy) intégrées dans cURL. Voici un exemple de ligne de commande que vous pouvez utiliser pour intégrer le proxy que vous utilisez avec cURL :

$ curl -x 026.930.77.2:6666 http://linux.com/

Dans l’extrait de code ci-dessus, « 6666 » est un paramètre substituable pour le numéro de port, tandis que « 026.930.77.2 » est l’adresse IP.

 

Bon à savoir : cURL est compatible avec la plupart des types de proxys couramment utilisés aujourd’hui, notamment HTTP, HTTPS et SOCKS.

Comment modifier l’agent utilisateur

Les agents utilisateurs sont des caractéristiques qui permettent aux sites cibles d’identifier l’appareil qui demande des informations. Un site cible peut exiger des émetteurs de requêtes de répondre à certains critères avant de renvoyer les données cibles souhaitées. Ces critères peuvent se rapporter au type d’appareil, au système d’exploitation ou au navigateur utilisé. Dans ce scénario, les entités collectant des données voudront simuler le comportement du « candidat » idéal de leur site cible.

Pour les besoin de la discussion, imaginons que le site que vous ciblez « préfère » demander aux émetteurs de requêtes d’utiliser Chrome comme navigateur. Pour obtenir le jeu de données souhaité à l’aide de cURL, il faut simuler les « caractéristiques du navigateur » demandé, comme ceci :

curl -A “Goggle/9.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Chrome/103.0.5060.71” https://getfedora.org/

Web scraping avec cURL

Conseil de pro : veillez à respecter les règles en vigueur sur un site web et, de manière générale, n’essayez pas d’accéder à un contenu protégé par mot de passe, ce qui est illégal dans la plupart des cas – ou tout du moins peu apprécié.

Vous pouvez utiliser curl pour automatiser le processus répétitif des tâches de web scraping, ce qui vous aide à éviter des tâches fastidieuses. Pour cela, vous devrez utiliser PHP. Voici un exemple que nous avons trouvé sur GitHub :

web scraping script in php using curl

Lorsque vous utilisez curl pour effectuer du scraping sur une page web, vous disposez de trois options :

  • curl_init($url) -> initialise la session
  • curl_exec() -> exécute
  • curl_close() -> ferme
code syntax for scraping a web page using curl

D’autres options à utiliser sont les suivantes :

  • Curlopt_url -> définit l’URL sur lequel vous voulez effectuer votre tâche de scraping
setting the URL you want to scrape with cURL
  • Curlopt_returntransfer -> indique à curl d’enregistrer la page scrapée en tant que variable. (Cela vous permet d’obtenir exactement ce que vous voulez extraire de la page.)
curl command line for saving scraped page as a variable

Au final

Bien que cURL soit un puissant outil de web scraping, il impose aux entreprises de consacrer un temps précieux au développement, tant en termes de collecte que de nettoyage de données. Bright Data a développé un web scraper entièrement automatisé, pouvant servir de solution sans code. Celui-ci permet aux entreprises de collecter des données à partir des sites web cibles en un clic ou simplement de commander le jeu de données souhaité. Cela permet aux équipes techniques, et notamment aux développeurs, de se concentrer sur le développement et le dépannage des produits.

 

Vous n’êtes pas sûr de quel produit choisir? Contactez les ventes pour trouver la solution qui vous convient.