Aller au contenu
Retour au blog

Erreurs liées à l'état du proxy : diagnostic de l'étape de la requête ayant échoué

Mihai MaximDernière mise à jour le 17 min read
Erreurs liées à l'état du proxy : diagnostic de l'étape de la requête ayant échoué
En bref : une requête ayant échoué via un proxy peut être due à une erreur de connexion, à un tunnel rejeté, à une réponse générée par un intermédiaire ou à une réponse provenant du serveur d'origine. Identifiez l'étape et le composant à l'origine du problème avant de modifier les identifiants, les délais d'expiration ou le comportement de réessai. Un code d'état à lui seul ne permet pas de déterminer la cause première.

Votre scraper signale un code 502, et la première idée qui vient à l’esprit est de changer de proxy. Cela pourrait modifier le résultat, mais n’explique pas le problème. L’échec peut provenir de votre proxy de transfert, de la passerelle de la destination ou d’un autre service situé entre les deux.

Les erreurs de statut de proxy sont des réponses d’erreur HTTP et des échecs de connexion associés rencontrés lors du transit d’une requête via un intermédiaire. Cette expression est un raccourci opérationnel utile, mais elle ne correspond pas à une catégorie d’erreur normalisée. Une réponse HTTP, une exception client et un champ d’erreur spécifique au fournisseur doivent être interprétés séparément.

Pour les développeurs qui collectent des données, l’objectif est d’isoler l’étape défaillante et de choisir une réponse bien délimitée. Tenter à nouveau une connexion en cas de problème temporaire diffère de la nouvelle tentative d’authentification après un rejet. Enregistrer une page d’erreur en tant qu’enregistrement de produit constitue une autre défaillance distincte, même si votre bibliothèque de requêtes considère le transfert comme achevé.

Ce guide fournit une séquence de diagnostic, un référentiel des codes d’état et une structure pratique pour les rapports d’échec. Il part du principe que vous utilisez des sources et des identifiants approuvés. Le dépannage doit permettre de rétablir un flux de travail autorisé, et non de contourner les restrictions d’accès d’une source ou de masquer des requêtes répétées derrière une liste croissante de modifications réseau.

Localisez les erreurs d’état de proxy sur le chemin de la requête

Tracez le chemin avant d’interpréter l’erreur : client, proxy de transfert configuré, toute passerelle de destination et application d’origine. Vous ne contrôlez peut-être pas tous les intermédiaires, ni même ne les observez tous. Marquez les composants que vous pouvez inspecter et les informations disponibles pour chacun d’entre eux.

Commencez par vous demander s’il existe une réponse HTTP. Un échec de résolution DNS, une connexion TCP refusée ou un échec de la négociation TLS peut empêcher la requête d’atteindre l’étape où un statut HTTP est renvoyé. Une bibliothèque cliente peut qualifier l’exception résultante d’« erreur de proxy » sans avoir reçu la moindre réponse 4xx ou 5xx.

Observation

Ce que cela permet d’établir

Ce qui reste inconnu

Impossible de résoudre le nom d’hôte du proxy

Le client n’a pas pu résoudre son prochain saut configuré

Disponibilité de la destination

Connexion au proxy refusée

La tentative de connexion a été rejetée

Vérifier si un autre point de terminaison approuvé fonctionne

CONNECT reçoit une erreur

L'établissement du tunnel a échoué

Réponse de l'application cible

Une réponse HTTP arrive après le tunnel

Une réponse a atteint le client

Quel composant en aval l'a générée

Le corps de la réponse est inattendu malgré le statut de réussite

La représentation ne correspond pas à vos attentes en matière de collecte

La cause est-elle liée au routage, à la session ou à l'état de l'application ?

Conservez ces éléments comme des catégories de résultats distinctes dans le collecteur. Remplacer chaque échec par proxy_failed supprime les détails nécessaires à sa résolution. Un rapport au niveau de la source doit distinguer les pages auxquelles on a tenté d’accéder sans jamais établir de connexion de celles qui ont renvoyé un refus ou dont l’analyse a échoué.

À titre d’exemple concret, supposons que toutes les destinations échouent avant même que la connexion au proxy ne s’ouvre. Cela suggère d’examiner en premier lieu le point de terminaison configuré ou le chemin d’accès au réseau local. Si une destination de diagnostic autorisée fonctionne avec la même configuration mais qu’une source échoue par la suite, les indices laissent supposer un problème plus cerné. Aucune de ces observations ne prouve à elle seule la cause exacte.

Modifiez une variable à la fois. Changer simultanément de proxy, de client, de région, d’en-têtes et de session peut aboutir à un succès tout en laissant le défaut inexpliqué. Une comparaison reproductible est plus utile qu’une réponse fortuite que vous ne pouvez pas expliquer.

Interprétez les codes d’état courants sans les surinterpréter

La spécification sémantique HTTP définit la signification standard des réponses. En particulier, une passerelle renvoyant le code 502 a reçu une réponse non valide d’un serveur en amont, tandis que le code 504 indique qu’aucune réponse en amont n’a été reçue dans les délais. Ces définitions identifient une catégorie, et non le défaut sous-jacent du réseau ou de l’application.

Statut

Signification à examiner

Première vérification utile

401

Authentification requise pour la ressource demandée

Demande d'authentification d'origine et session

403

Requête comprise mais refusée

Composant de rapport, politique d'accès et périmètre du compte

407

Authentification par proxy requise

Défi de proxy et informations d'identification de proxy configurées

429

Le débit de requêtes a dépassé une limite

Limiter la portée, définir des délais, agréger la charge des requêtes

502

La passerelle a reçu une réponse en amont non valide

Diagnostics de la passerelle et preuves de défaillance en amont

503

Service indisponible, souvent temporairement

Signalement d'un problème de service, de maintenance ou de surcharge

504

La passerelle n'a pas reçu de réponse en amont dans les délais impartis

Quel saut a dépassé le délai d'attente et quel était son délai configuré

Ne transformez pas ce tableau en une carte automatique des responsabilités. Un code 403 ne constitue pas une preuve de blocage d’adresse IP, et un code 429 n’implique pas nécessairement une limite appliquée à une adresse IP spécifique. Une destination peut appliquer des limites par compte, par identifiant, par ressource ou selon une autre politique. La référence MDN sur le code 429 explique que le mécanisme de comptage n’est pas défini par le statut seul.

Pour un code 503 ou 504, augmenter le délai d’attente du client peut ne rien changer. L’intermédiaire qui répond a peut-être déjà appliqué son propre délai. Enregistrez le temps écoulé en même temps que la réponse, puis comparez-le aux limites documentées du composant concerné. Un temps d’attente plus long au mauvais niveau peut simplement occuper les équipes plus longtemps.

Les codes spécifiques à un fournisseur nécessitent leur propre espace de noms. Si un service renvoie un statut personnalisé ou une erreur JSON telle qu’une étiquette de routage interne, consultez la documentation actuelle de ce fournisseur. Ne présentez pas un numéro propriétaire comme ayant une signification HTTP universelle et ne supposez pas qu’un autre fournisseur l’utilise de la même manière.

Enfin, conservez la catégorie de réponse dans le rapport d’exécution de votre jeu de données. Une page rejetée par une politique ne doit pas être considérée comme un simple produit manquant. Les utilisateurs doivent pouvoir distinguer une observation de la source d’une impossibilité d’observer la source.

Distinguer l’authentification par proxy de l’authentification sur le site web

Un code 407 constitue une raison valable d’examiner l’étape d’authentification par proxy plutôt que la connexion au site web. Une réponse conforme doit inclure un Proxy-Authenticate défi, et le client doit fournir les identifiants du proxy via le mécanisme approprié. La documentation MDN sur le code 407 décrit cet échange.

Vérifiez le nom d’hôte du proxy, le port, la méthode d’authentification, l’état du compte et toutes les exigences documentées relatives à la liste blanche. Assurez-vous que le processus en cours d’exécution a bien reçu la configuration prévue. Un shell de développeur peut avoir des variables d’environnement différentes de celles d’un worker planifié ou d’un conteneur ; par conséquent, le fait que cela fonctionne sur un ordinateur portable ne valide pas la configuration de déploiement.

Séparez les identifiants d’origine et ceux du proxy. Un en-tête Authorization ne remplace pas l’authentification par proxy, et un mot de passe de proxy ne doit pas être transmis à l’application de destination. Utilisez la configuration de proxy documentée par votre client plutôt que de composer vous-même un en-tête d’identifiants générique.

Évitez d’inclure directement les identifiants dans une commande de diagnostic copiée. L’historique du shell, les listes de processus, les sorties d’automatisation continue (CI) et les systèmes de tickets peuvent les conserver. Utilisez le mécanisme de gestion des secrets approuvé pour votre environnement, et masquez les valeurs dans toute trace de requête partagée avec une autre personne.

Pour les sessions de site web, validez séparément la page authentifiée attendue. Un proxy peut s’authentifier avec succès alors que la destination renvoie un formulaire de connexion. Notre guide sur les cookies HTTP explique pourquoi la durée de conservation des cookies et la validité de la session côté serveur sont deux aspects distincts.

Après avoir corrigé la configuration, testez une petite requête autorisée avant de lancer la file d’attente complète. Une boucle de réessais illimitée avec des identifiants incorrects peut masquer l’erreur d’origine et générer une charge inutile. Un état d’échec bien défini suspend les tâches dépendantes et identifie le responsable de la configuration capable de résoudre le problème.

Distinguer la réussite de la requête CONNECT de la réussite de la connexion à la cible

Lorsqu’un proxy HTTP est utilisé pour tunnelliser une connexion HTTPS, le client envoie généralement une requête CONNECT indiquant l’hôte et le port de destination. La réponse du proxy relève de l’établissement du tunnel. La réussite du tunnel ne garantit pas que la négociation TLS ou la requête vers la destination qui s’ensuivent aboutiront.

Cela crée au moins trois points de contrôle utiles : connexion au proxy, établissement du tunnel et achèvement de l’échange avec la cible. Selon le déploiement, il peut également y avoir un échange TLS entre le client et le proxy. Enregistrez quelle connexion sécurisée échoue plutôt que de considérer chaque erreur de certificat comme un problème lié à la cible.

Le manuel de curl documente des valeurs distinctes pour la réponse CONNECT (http_connect), la réponse finale (response_code) et les erreurs de transfert. Ces distinctions sont utiles pour comparer une reproduction en ligne de commande avec une trace d’application. Assurez-vous que la version de curl installée correspond aux options que vous utilisez.

Un rapport de diagnostic indiquant « HTTP 200 » peut être trompeur si ce chiffre provient uniquement de la requête CONNECT. Vérifiez que la requête cible a abouti et que sa réponse contient la représentation attendue. De même, une valeur de réponse nulle ou manquante dans l’outil n’est pas un véritable code d’état HTTP provenant de la source.

Laissez la vérification des certificats activée. Si la vérification échoue, vérifiez le nom d’hôte configuré, le magasin de certificats, l’heure système et la configuration d’interception approuvée, le cas échéant. La désactivation de la vérification peut transformer un échec de confiance évident en une connexion apparemment réussie vers un point de terminaison non fiable.

Utilisez le client le plus simple permettant de reproduire le problème. Notre comparaison de clients HTTP Python aide à identifier les différences dans la gestion des sessions et des connexions. Enregistrez le schéma de proxy et le comportement de résolution DNS comme éléments de configuration ; ne partez pas du principe que deux bibliothèques interprètent de la même manière une même chaîne d’abréviation.

Utilisez Proxy-Status lorsqu’un intermédiaire le fournit

Le Proxy-Status champ de réponse ajoute des informations de diagnostic sur la gestion par l’intermédiaire. La RFC 9209 définit des paramètres tels que error, received-status, et details, ainsi que des types d’erreurs, notamment les échecs DNS, de connexion et TLS. Cela s’applique aux proxys de transfert et aux passerelles, et pas uniquement au proxy que vous avez configuré localement.

Une réponse illustrative pourrait se présenter comme suit :

HTTP/1.1 504 Gateway Timeout
Proxy-Status: edge.example; error=connection_timeout

Ici, l’intermédiaire nommé signale un délai d’attente de connexion. Cette information est plus précise que le code 504 seul. Plusieurs entrées peuvent décrire une chaîne, mais ce sont les implémentations qui décident quand ajouter ce champ ; son absence ne signifie donc pas qu’aucun intermédiaire n’est intervenu.

Considérez ce champ comme un indice, et non comme une preuve incontestable. Les informations de diagnostic peuvent être omises ou modifiées en cours de route, et le texte arbitraire d’une réponse distante ne doit pas être considéré comme une instruction de contrôle fiable. Vérifiez la syntaxe à l’aide d’un analyseur de champs structurés approprié si votre application l’utilise par programmation.

Ne conservez le diagnostic complet que lorsque son contenu est pertinent. Une details valeur ou un identifiant de saut suivant peut révéler des informations sur l’infrastructure qui n’ont pas leur place sur une page d’erreur publique. Votre message destiné au public peut résumer la catégorie de défaillance tandis qu’un enregistrement d’incident à accès restreint conserve les détails techniques approuvés.

Reliez ces éléments à un identifiant d’exécution et de tentative. Un journal de proxy provenant d’une tentative différente peut indiquer un prochain saut ou un résultat différent. Sans corrélation, les ingénieurs risquent de passer du temps à expliquer deux requêtes sans rapport entre elles comme s’il s’agissait d’un même événement.

Lorsqu’aucun diagnostic structuré n’est disponible, indiquez que l’attribution n’est pas résolue. « Réponse de la passerelle reçue ; composant d’origine non confirmé » est plus utile que d’affirmer que le proxy de transfert est défaillant simplement parce que la requête est passée par celui-ci.

Reproduisez la défaillance à l’aide d’une comparaison contrôlée

Choisissez une destination approuvée et une requête défaillante représentative. Maintenez fixes la méthode, l’URL, les en-têtes pertinents, la politique de délai d’expiration et le contexte de session. Enregistrez les versions du client et des dépendances. Évitez de rejouer des requêtes modifiant l’état, sauf si l’opération dispose d’un mécanisme de nouvelle tentative sécurisé et documenté.

Ne comparez la route configurée à une autre route de diagnostic autorisée que si votre environnement le permet. Ne contournez pas un proxy d’entreprise obligatoire pour vérifier si une requête fonctionne directement. Si l’accès direct est interdit, utilisez des points de terminaison de santé approuvés ou demandez au propriétaire du réseau d’effectuer un test contrôlé.

La référence aux erreurs de libcurl distingue les échecs liés à la résolution du proxy, à la résolution de l’hôte, à la connexion et à la vérification du certificat. Utilisez les catégories d’exceptions équivalentes dans votre propre client. Séparez ces erreurs de transport des codes d’état de réponse HTTP dans les journaux et les métriques.

Enregistrez un rapport concis et expurgé. L’exemple synthétique suivant est un schéma de diagnostic propre à l’application, et non un format de réponse requis par un fournisseur de proxy :

{
  "run_id": "catalog-check-17",
  "attempt": 1,
  "destination_host": "catalog.example",
  "stage": "target_response",
  "connect_status": 200,
  "http_status": 504,
  "elapsed_ms": 12040,
  "diagnostic_category": "upstream_timeout",
  "response_body_saved": false,
  "credentials_redacted": true
}

La durée numérique est donnée à titre indicatif ; il ne s’agit ni d’une recommandation de délai d’expiration ni d’une référence. En production, renseignez les champs à partir des événements observés et laissez les valeurs inconnues telles quelles. N’inventez jamais un statut CONNECT simplement parce que le client a été configuré pour utiliser un proxy.

Une fois que vous disposez d’une reproduction contrôlée, modifiez une seule variable suspecte. Si la modification résout l’échec, répétez un test limité et documentez la différence. Un seul succès après une longue série d’échecs peut être le signe d’une intermittence ordinaire plutôt que la preuve de la réparation.

Effectuez les nouvelles tentatives en fonction de la catégorie d’échec, et non en vous basant sur des vœux pieux

Les nouvelles tentatives sont utiles lorsqu’une nouvelle tentative a une chance raisonnable de réussir et que la répétition de l’opération est acceptable. Elles ne constituent pas une solution générale pour les identifiants rejetés, une requête mal formée ou une restriction d’accès documentée.

Lorsqu’il est présent et applicable, respectez l’en-tête Retry-After. Sa valeur peut être un délai en secondes ou une date HTTP, comme indiqué dans la référence Retry-After. Associez cette instruction à un nombre fini de tentatives, à un délai global pour la tâche et à une politique de replanification des tâches qui ne peuvent pas être menées à bien au cours de l’exécution en cours.

Évitez les tentatives successives. Si la bibliothèque HTTP, le service proxy et le gestionnaire de tâches effectuent chacun des tentatives indépendamment, une seule requête logique peut générer plus de tentatives que prévu par l’application. Identifiez la couche chargée de prendre les décisions de réessai et exposez le nombre réel de tentatives lorsque cela est possible.

Utilisez des réessais différés avec une marge de variation pour les échecs transitoires lorsqu’aucune instruction plus spécifique ne s’applique. Limitez la concurrence par source et surveillez la charge globale de tous les travailleurs. Un délai local dans un processus ne contrôle pas le débit généré par l’ensemble du parc.

Mettez le trafic en pause ou réduisez-le lorsque les défaillances persistent. Prévoyez une condition de reprise afin que la tâche ne reste pas suspendue indéfiniment, mais veillez à ce que la vérification soit limitée et adaptée à la source. Les échecs d’authentification et de politique doivent généralement nécessiter une révision de la configuration ou des droits d’accès plutôt qu’un renouvellement automatique des points de terminaison.

Séparez la collecte des tentatives de reprise de la livraison des tentatives de reprise. Si les enregistrements ont déjà été acceptés localement et que seule l’exportation a échoué, la récupération des pages crée une nouvelle observation et peut modifier les valeurs. Le guide sur le scraping Web automatisé explique cette distinction dans le cadre plus large du cycle de vie d’une tâche.

Vérifiez la correction et préparez une escalade pertinente

Ne vous contentez pas de vérifier la disparition du code d’erreur. Confirmez le type de page attendu, les champs obligatoires, le contexte de la source et le nombre d’enregistrements acceptés. Une nouvelle réponse 200 contenant une page de vérification n’a pas rétabli le flux de travail de collecte.

Examinez les échantillons ayant échoué et ceux ayant réussi après la modification. Vérifiez si les nouvelles tentatives ont généré des doublons ou si des échecs antérieurs ont laissé une lacune dans l’ensemble source. Une correction peut empêcher de futures erreurs tout en nécessitant un rattrapage distinct ou une notification aux consommateurs pour les exécutions concernées.

Pour l’escalade, incluez la fenêtre d’observation UTC, la version du client, l’identifiant de point de terminaison du proxy expurgé, l’hôte de destination, l’étape ayant échoué, le statut ou la catégorie d’exception, l’ID de la requête et un résumé de la reproductibilité. Précisez quelles modifications de configuration ont été testées et quels itinéraires ont été autorisés à des fins de comparaison.

Ne joignez pas de fichiers « cookie jars » bruts, d’URL contenant des identifiants, d’en-têtes d’autorisation ou de captures de trafic non restreintes. Si un fournisseur demande des preuves supplémentaires, partagez le strict minimum nécessaire via un canal approuvé. Conservez l’enregistrement original expurgé afin qu’une enquête ultérieure puisse distinguer les faits des hypothèses ajoutées pendant l’incident.

Terminez par une règle opérationnelle : qu’est-ce qui permettra de détecter cette défaillance la prochaine fois, qui en est responsable et quelle partie de la tâche doit être suspendue ? Cela permet de transformer un diagnostic ponctuel en une réponse reproductible, sans pour autant supposer que toutes les futures erreurs d’état du proxy auront la même cause.

Points clés à retenir

  • Distinguez les défaillances de transport, les réponses du tunnel, les réponses de la cible et les défaillances de l’analyseur syntaxique.
  • Interprétez les codes 407, 429, 502 et 504 comme des catégories guidant l’enquête, et non comme des causes profondes exhaustives.
  • Séparez les identifiants du proxy et de l’origine, et préservez la vérification TLS.
  • Utilisez des diagnostics structurés et la corrélation des requêtes lorsque cela est possible.
  • Limitez le nombre de tentatives, vérifiez les données renvoyées et conservez les preuves relatives aux sources manquantes.

FAQ

Une erreur de proxy peut-elle disparaître sans modification de la configuration ?

Oui. Des problèmes temporaires liés au réseau ou au service peuvent se résoudre entre deux tentatives. Cela ne prouve pas pour autant que la configuration précédente était correcte à tous égards. Conservez les preuves d’échec d’origine et vérifiez un échantillon représentatif après la reprise. Si le problème se reproduit, comparez les schémas par destination, étape et moment plutôt que de traiter chaque incident comme s’il était sans rapport avec les autres.

Les corps d'erreur doivent-ils être stockés avec les enregistrements extraits ?

Conservez les corps de diagnostic séparément des données acceptées, et ne les conservez que lorsque la politique l’autorise. Une page d’erreur peut contenir des détails sur l’infrastructure, des identifiants ou des informations sur la requête renvoyées. Stockez un enregistrement expurgé ou un enregistrement de défaillance classifié lorsque cela fournit suffisamment de preuves, et assurez-vous que les consommateurs en aval ne puissent pas le confondre avec une observation valide provenant de la source.

Le changement de région géographique permet-il de conserver des résultats comparables ?

Pas nécessairement. Un changement de région peut affecter la langue, la devise, les produits disponibles ou les conditions d’accès, même lorsqu’il résout un problème de connectivité. Enregistrez ce changement en tant que contexte de collecte et validez les champs qui en résultent. Ne fusionnez pas sans le signaler des observations provenant de différentes régions dans un ensemble de données censé offrir une vue cohérente du marché.

Conclusion

La réponse utile la plus rapide aux erreurs de statut de proxy est une question précise : quelle étape a échoué, et quelle preuve permet de l’identifier ? Déterminez s’il s’agit d’une exception de transport, d’une réponse de tunnel ou d’une réponse HTTP en aval avant de modifier le système. Conservez l’observation d’origine, testez une hypothèse à la fois et vérifiez les données après la réparation apparente.

Intégrez ces distinctions dans le contrat de défaillance du collecteur. Un historique d’exécution clair, un responsable des réessais clairement défini et un rapport d’escalade expurgé réduisent les enquêtes répétitives. Ils préservent également la distinction entre une source n’ayant renvoyé aucune donnée correspondante et une source que votre tâche n’a pas pu observer.

Si la maintenance de la couche de récupération accapare l’attention de l’équipe, évaluez l’API Scraper de WebScrapingAPI pour ce composant tout en conservant vos propres contrôles d’acceptation et le contexte de l’incident. Le transfert de la récupération n’élimine pas la nécessité de comprendre les défaillances. Il devrait vous fournir une limite opérationnelle plus claire, et non un autre endroit où les données manquantes deviennent invisibles.

À propos de l'auteur

Mihai Maxim, Développeur Full Stack @ WebScrapingAPI

Mihai Maxim

Développeur Full Stack

Mihai Maxim est développeur Full Stack chez WebScrapingAPI ; il participe à l'ensemble du produit et contribue à la création d'outils et de fonctionnalités fiables pour la plateforme.

Web scraping avec AWS Lambda : guide pour Python et Java 2026
Guides

Web scraping avec AWS Lambda : guide pour Python et Java 2026

TL;DR: En bref : le web scraping avec AWS Lambda fonctionne mieux lorsque chaque invocation est courte, bien délimitée et peut faire l'objet d'une nouvelle tentative de manière indépendante. Commencez par utiliser les requêtes HTTP directes, AWS SAM et S3, puis ajoutez SQS, des conteneurs, le rendu dans un navigateur, des proxys ou une couche de récupération gérée uniquement lorsque la charge de travail démontre qu'elle en a besoin.

Suciu Dan33 min read
Lire l'article
Comment utiliser GoSpider : exploration, nettoyage des URL et extraction de données
Guides

Comment utiliser GoSpider : exploration, nettoyage des URL et extraction de données

TL;DR: En bref : GoSpider est un robot d'exploration en ligne de commande destiné à découvrir des URL, et non un outil complet de collecte de données structurées. Ce guide d'utilisation de GoSpider présente comment effectuer une exploration limitée, gérer correctement les résultats, transférer les données de Colly vers un fichier CSV, ainsi qu'une procédure de diagnostic pour les réponses 403 ou les pages nécessitant un rendu JavaScript.

Suciu Dan24 min read
Lire l'article
Comment récupérer les données de Redfin : Guide Python des données immobilières
Guides

Comment récupérer les données de Redfin : Guide Python des données immobilières

TL;DR: Redfin expose des points d'extrémité d'API cachés qui renvoient du JSON structuré pour les listes de propriétés, ce qui permet d'ignorer complètement l'analyse HTML fragile. Ce guide vous accompagne dans la construction d'un scraper Python qui extrait les données de location et de vente, effectue des recherches par emplacement, surveille les nouvelles inscriptions via des sitemaps XML et exporte des résultats propres au format CSV ou JSON.

Suciu Dan15 min read
Lire l'article

Commencez à créer

Prêt à faire évoluer votre système de collecte de données ?

Rejoignez plus de 2 000 entreprises qui utilisent WebScrapingAPI pour extraire des données Web à l'échelle de l'entreprise, sans aucun coût d'infrastructure.