Retour au blog
Guides
Ștefan Răcilă7 avril 202311 min de lecture

Les 11 meilleurs conseils pour éviter d'être bloqué ou de voir son adresse IP bannie lors du web scraping

Les 11 meilleurs conseils pour éviter d'être bloqué ou de voir son adresse IP bannie lors du web scraping

Le web scraping est un outil puissant permettant d'extraire des données précieuses à partir de sites web. Il permet d'automatiser le processus de collecte de données, ce qui représente un gain de temps considérable tant pour les entreprises que pour les particuliers. Cependant, un grand pouvoir implique de grandes responsabilités. Si vous ne faites pas attention, votre adresse IP risque d'être bannie ou bloquée par le site web que vous explorez.

Dans cet article, je vais vous donner 11 conseils détaillés pour scraper le Web sans vous faire bloquer ou mettre sur liste noire. En suivant ces conseils, vous apprendrez comment protéger votre identité pendant le scraping, comment respecter les conditions d'utilisation des sites Web et comment espacer vos requêtes pour éviter de surcharger le site cible avec un trop grand nombre de requêtes.

Pourquoi êtes-vous bloqué ?

Le scraping n'est pas toujours autorisé, car il peut être considéré comme une violation des conditions d'utilisation d'un site web. Les sites web ont souvent des règles spécifiques concernant l'utilisation des outils de scraping. Ils peuvent interdire complètement le scraping ou imposer des restrictions sur la manière dont les données peuvent être extraites et sur le type de données autorisées. De plus, le scraping d'un site web peut imposer une charge importante aux serveurs du site, ce qui peut ralentir le site pour les utilisateurs légitimes.

Vous pourriez rencontrer des problèmes en scrapant des informations sensibles telles que des données personnelles ou financières. Cela peut entraîner de graves problèmes juridiques ainsi que des violations potentielles des lois sur la confidentialité et la protection des données.

De plus, certains sites web ont mis en place des mesures anti-scraping pour détecter et bloquer les scrapers. L'utilisation du scraping peut être considérée comme une tentative de contourner ces mesures, ce qui serait également interdit.

En général, il est important de toujours respecter les conditions d'utilisation d'un site web et de s'assurer que vous effectuez le scraping de manière éthique et légale. Si vous n'êtes pas certain que le scraping soit autorisé, il est toujours judicieux de vérifier auprès de l'administrateur du site web ou de son équipe juridique.

1. Respectez les conditions d'utilisation du site web

Avant de procéder au scraping d'un site web, il est important de lire et de comprendre les conditions d'utilisation du site. Celles-ci se trouvent généralement en bas de page ou sur une page distincte intitulée « Conditions d'utilisation » ou « Exclusion des robots ». Il est important de respecter toutes les règles et réglementations énoncées dans les conditions d'utilisation.

2. Prêtez attention au fichier « robots.txt »

Le protocole d'exclusion des robots (REP) est une norme utilisée par les sites web pour communiquer avec les robots d'indexation et autres agents automatisés, tels que les scrapers. Le REP est mis en œuvre à l'aide d'un fichier appelé « robots.txt » qui est placé sur le serveur du site web. Ce fichier contient des instructions destinées aux robots d'indexation et autres agents automatisés, leur indiquant quelles pages ou sections du site web ne doivent pas être consultées ou indexées.

Le fichier robots.txt est un simple fichier texte qui utilise une syntaxe spécifique pour indiquer quelles parties du site web doivent être exclues de l'exploration. Par exemple, le fichier peut contenir des instructions visant à exclure toutes les pages d'un répertoire donné ou toutes les pages d'un certain type de fichier. Un robot d'exploration ou un scraper qui respecte le REP lira le fichier robots.txt lorsqu'il visitera un site web et n'accédera pas aux pages ou sections exclues par le fichier, ni ne les indexera.

À titre d'exemple, vous pouvez trouver le fichier robots.txt de notre site web ici.

3. Utilisez des proxys

Il existe plusieurs raisons pour lesquelles vous pourriez utiliser un proxy lors du scraping web. Un proxy vous permet d'acheminer vos requêtes via une adresse IP différente. Cela peut vous aider à dissimuler votre identité et rendre plus difficile pour les sites web de suivre votre activité de scraping. En faisant tourner votre adresse IP, il devient encore plus difficile pour un site web de détecter et de bloquer votre scraper. Les requêtes sembleront provenir de différents endroits.

Contourner les restrictions géographiques

Certains sites web peuvent avoir des restrictions géographiques, n'autorisant l'accès qu'à certains utilisateurs en fonction de leur adresse IP. En utilisant un serveur proxy situé dans la région cible, vous pouvez contourner ces restrictions et accéder aux données.

Éviter les interdictions d'IP

Les sites web peuvent détecter et bloquer les requêtes qui arrivent trop rapidement ; il est donc important d'espacer vos requêtes et d'éviter d'en envoyer trop à la fois. L'utilisation d'un proxy peut vous aider à éviter les interdictions d'IP en envoyant les requêtes via différentes adresses IP. Même si une adresse IP est bannie, vous pouvez continuer à scraper en passant à une autre.

4. Faites tourner votre adresse IP

La rotation d'IP est une technique utilisée lors du web scraping pour dissimuler votre identité et rendre plus difficile pour les sites web de détecter et de bloquer votre scraper. La rotation d'IP consiste à utiliser une adresse IP différente pour chaque requête envoyée à un site web. En alternant les adresses IP, vous pouvez faire en sorte que votre activité de scraping ressemble davantage à un trafic humain normal.

Il existe deux méthodes principales pour effectuer la rotation d'IP lors du scraping :

Utilisation d'un pool d'adresses IP proxy

Cette méthode consiste à utiliser un pool d'adresses IP provenant de différents serveurs proxy. Avant d'envoyer une requête à un site web, le scraper sélectionne aléatoirement une adresse IP du pool à utiliser pour cette requête.

Utilisation d'un service de rotation de proxy

Cette méthode consiste à utiliser un service qui alterne automatiquement l'adresse IP pour chaque requête envoyée à un site web. Le service gère un pool d'adresses IP et attribue automatiquement une adresse IP différente à chaque requête. Cela peut être un moyen plus pratique de faire tourner les adresses IP, car vous n'avez pas besoin de gérer le pool d'adresses IP et pouvez laisser le service s'en charger à votre place.

La rotation des adresses IP peut également contribuer à accélérer le scraping, car les requêtes peuvent être envoyées simultanément via plusieurs adresses IP.

5. Utilisez un navigateur sans interface graphique

Pour éviter d'être restreint lors du web scraping, vous devez faire en sorte que vos interactions avec le site web cible ressemblent à celles d'utilisateurs lambda visitant les URL. L'utilisation d'un navigateur web sans interface graphique est l'un des meilleurs moyens d'y parvenir.

Un navigateur sans interface graphique est un navigateur dépourvu d'interface utilisateur graphique qui peut être contrôlé par programmation ou via une ligne de commande. Cela vous permet d'interagir avec un site web comme si vous le parcouriez manuellement et peut augmenter les chances que votre scraper passe inaperçu.

Vous pouvez utiliser Puppeteer ou d'autres suites d'automatisation de navigateur pour intégrer des navigateurs sans interface graphique à votre crawler ou à votre scraper.

Consultez nos guides détaillés sur « Comment utiliser Puppeteer avec NodeJS » et « Comment utiliser Selenium avec Python » pour en savoir plus sur l'utilisation des navigateurs sans interface graphique.

6. Utilisez de véritables agents utilisateurs

La plupart des navigateurs en ligne populaires, tels que Google Chrome et Firefox, intègrent un mode sans interface graphique. Même si vous utilisez un navigateur officiel en mode sans interface graphique, vous devez faire en sorte que son comportement semble naturel. Pour ce faire, divers en-têtes de requête spéciaux, tels que User-Agent, sont couramment utilisés.

L'agent utilisateur est une chaîne de caractères qui identifie le logiciel, la version et l'appareil à l'origine de la requête. Ces informations peuvent être utilisées par le site web pour déterminer comment répondre à la requête et peuvent également servir à tracer l'origine de celle-ci. En utilisant un agent utilisateur qui imite fidèlement un navigateur couramment utilisé, vous augmentez les chances que votre scraper passe inaperçu.

7. Utilisez un service de résolution de CAPTCHA

Le CAPTCHA (Completely Automated Public Turing test to tell Computers and Humans Apart) est une technique utilisée par les sites web pour empêcher le scraping automatisé. Ce test permet de différencier les humains des robots en présentant des défis qui nécessitent une intervention humaine pour être résolus. Par exemple, identifier une série de caractères dans une image. Préparez-vous à les gérer lorsqu'ils apparaissent en utilisant un service tiers tel qu'Anti Captcha ou 2Captcha.

Vous devriez vous demander s'il est toujours rentable de scraper des sites web qui nécessitent une résolution continue de CAPTCHA au fil du temps. Certains de ces fournisseurs de résolution de CAPTCHA sont assez lents et coûteux. WebScrapingAPI dispose de mécanismes anti-bot avancés qui réduisent le nombre de CAPTCHA rencontrés. Nous utilisons également la résolution automatisée de CAPTCHA comme solution de secours.

8. Ralentissez

Ne scrapez pas trop rapidement : envoyer trop de requêtes en peu de temps peut amener un site web à détecter que vous le scrapez. Cela pourrait bloquer vos requêtes. Il est important d'espacer vos requêtes et d'éviter d'en envoyer trop à la fois.

Ajoutez des délais aléatoires entre vos requêtes et vos actions. Vous rendrez ainsi le comportement de votre crawler ou de votre scraper plus imprévisible pour le site web cible, réduisant ainsi le risque de détection.

Évitez de scraper de grandes quantités de données en peu de temps. Le scraping d'une grande quantité de données en peu de temps déclenchera les filtres anti-spam du site web et vous serez bloqué. Il est donc important d'échelonner votre scraping et d'éviter de scraper de grandes quantités de données en peu de temps.

9. Méfiez-vous des pièges « honeypot »

Sur certains sites web, des pièges « honeypot » sont mis en place. Ces mécanismes sont destinés à attirer les bots dans des pièges sans que les utilisateurs réels ne s'en aperçoivent.

Les liens inclus dans le code HTML d'un site web mais invisibles pour les utilisateurs constituent l'une des formes les plus élémentaires de pièges « honeypot ». Pour déterminer si un lien est visible ou non pour les utilisateurs réels, vous pouvez vérifier son style calculé.

Voici un exemple de code comportant deux fonctions qui renverront une liste de tous les liens visibles présents sur la page web. La fonction vérifie pour chaque lien si la couleur d'arrière-plan est identique à celle du texte. Elle comporte également un paramètre nommé strict. Celui-ci indiquera à la fonction de vérifier si le lien est affiché ou s'il est visible, car tous les liens qui ne sont pas affichés ne sont pas nécessairement des pièges « honeypot ».

function getComputedBackgroundColor(elem) {
    let isTransparent
    do {
        const bgColor = window.getComputedStyle(elem).backgroundColor
        isTransparent = !/rgb\(|[1-9]{1,3}\)'$/.test(bgColor) // you can test this regex on regex101.com

        if (isTransparent) {
            elem = elem.parentElement
        }
    } while (isTransparent)

    return window.getComputedStyle(elem).backgroundColor
}

function filterLinks(strict) { 
	let allLinksArray = Array.from(document.querySelectorAll('a[href]')); 
	console.log('There are ' + allLinksArray.length + ' total links'); 
    
	let filteredLinks = allLinksArray.filter(link => { 
		let linkCss = window.getComputedStyle(link); 
		let isDisplayed = linkCss.getPropertyValue('display') != 'none'; 
		let isVisible = linkCss.getPropertyValue('visibility') != 'hidden';
        let computedBgColor = window.getComputedBackgroundColor(link)
        let textColor = linkCss.textColor

        if (strict) {
            if (isDisplayed && isVisible && computedBgColor !== textColor) return link; 
        } else {
            if (computedBgColor !== textColor) return link; 
        }
	}); 
    
	console.log('There are ' + filteredLinks.length + ' visible links'); 
}

En général, les pièges « honeypot » sont utilisés en combinaison avec des systèmes de suivi capables d'identifier les requêtes automatisées. Ainsi, même si les requêtes futures ne proviennent pas de la même adresse IP, le site web sera en mesure de les reconnaître comme similaires.

10. Utilisez le cache Google

Le cache Google est une fonctionnalité de la recherche Google qui permet aux utilisateurs de consulter une version mise en cache d'une page web, même si le site web d'origine est hors service ou si la page web a été supprimée. Cette fonctionnalité peut s'avérer utile lors du web scraping, car elle vous permet d'accéder à une page web même si le site web d'origine bloque votre adresse IP ou votre scraper.

Pour accéder à la version mise en cache d'une page web, vous devez ajouter le préfixe « https://webcache.googleusercontent.com/search?q=cache: » à l'URL de la page web cible. Par exemple, pour extraire la page de tarifs de WebScrapingAPI, vous pouvez utiliser l'URL « https://webcache.googleusercontent.com/search?q=cache:https://www.webscrapingapi.com/pricing ».

L'utilisation du cache Google peut être une bonne alternative lors du scraping, mais gardez à l'esprit qu'elle peut être limitée. Elle peut contenir d'anciennes versions des données du site web. La fréquence à laquelle Google explore un site web dépend de sa popularité ; les données peuvent donc être très obsolètes sur les sites peu populaires.

D'autres inconvénients peuvent inclure l'impossibilité d'utiliser des paramètres de requête ou des ancres pour la page Web cible. De plus, certains sites Web peuvent demander explicitement à Google de ne pas mettre leurs pages en cache.

11. Faites appel à un professionnel

Faire appel à un service de scraping professionnel peut vous aider à éviter les pièges courants du scraping et vous fournir des données propres et fiables. WebScrapingAPI est l’un des meilleurs fournisseurs de services de scraping, disposant de l’infrastructure, de la bande passante et du système de rotation d’adresses IP nécessaires pour gérer des tâches de scraping à grande échelle.

Gardez à l'esprit que ces conseils constituent des lignes directrices générales et ne garantissent pas que vous ne serez pas bloqué. Chaque site web est différent et dispose de politiques anti-scraping distinctes. Cependant, suivre ces conseils vous aidera à augmenter les chances que votre scraper fonctionne sans heurts et passe inaperçu.

Résumé

En conclusion, il est important de pratiquer le web scraping de manière responsable pour éviter d'être bloqué ou mis sur liste noire. En suivant les 11 conseils présentés dans cet article, vous protégerez votre identité. Vous respecterez les conditions d'utilisation du site web et éviterez de le surcharger avec un trop grand nombre de requêtes. N'oubliez pas de toujours pratiquer le scraping de manière éthique et légale. C'est ainsi que vous vous assurerez de ne pas être bloqué par les sites web.

De plus, il vaut la peine d'envisager de faire appel à un service de scraping professionnel. Celui-ci peut vous fournir des données propres et fiables et vous aider à éviter les pièges courants du scraping. Un prestataire de services de scraping professionnel dispose d'outils et de techniques plus avancés pour gérer le scraping web. Ces outils peuvent vous aider à gérer les CAPTCHA, à traiter les erreurs et à contourner les mesures anti-scraping. Ils peuvent vous faire gagner du temps et de l'argent, et vous aider à rester dans la légalité.

Cela dit, WebScrapingAPI propose une période d'essai de 7 jours, sans carte bancaire requise ; vous pourriez vouloir l'essayer.

À propos de l'auteur
Ștefan Răcilă, Développeur Full Stack @ WebScrapingAPI
Ștefan RăcilăDéveloppeur Full Stack

Stefan Racila est ingénieur DevOps et Full Stack chez WebScrapingAPI ; il développe des fonctionnalités pour les produits et assure la maintenance de l'infrastructure qui garantit la fiabilité de la plateforme.

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.