5 techniques anti-scraping que vous risquez de rencontrer

Avec le développement du big data, le public commence à obtenir des données sur Internet pour les analyser à l’aide d’outils de web scraping. Il existe plusieurs façons de créer son propre crawler : extensions de navigateur, codage python avec Beautiful Soup ou Scrapy, et aussi des outils d’extraction de données comme Octoparse.

Cependant, il y a toujours une guerre entre les spiders et les anti-bots. Les développeurs Web appliquent différents types de techniques anti-scraping pour empêcher que leurs sites Web ne soient scrapés. Dans cet article, j’ai répertorié les cinq techniques anti-scraping les plus courantes et en même temps, présenté des solutions .  

5 techniques anti-scraping

1. IP

L’un des moyens les plus simples pour un site web de détecter les activités de web scraping est le suivi des adresses IP. Le site Web peut identifier si l’IP est un robot en se basant sur ses comportements. Lorsqu’un site Web découvre qu’un nombre excessif de requêtes a été envoyé à partir d’une seule adresse IP de façon périodique ou sur une courte période, il y a de fortes chances que l’IP soit bloquée car elle est soupçonnée d’être un robot. Dans ce cas, ce qui compte vraiment pour construire un crawler anti-scraping est le nombre et la fréquence des visites par unité de temps. Voici quelques scénarios que vous pouvez rencontrer.

Scenario 1: Faire plusieurs visites en quelques secondes. Il est impossible qu’un être humain puisse naviguer aussi rapidement. Donc, si votre robot envoie des requêtes fréquentes à un site web, le site web bloquera certainement l’IP parce que vous êtes identifié comme un robot.

Solution: Ralentir la vitesse de scraping. La mise en place d’un délai (par exemple la fonction “sleep”) avant l’exécution ou l’augmentation du temps d’attente entre deux étapes serait toujours efficace.

Scenario 2: Visiter un site web exactement au même rythme. Un véritable être humain ne répète pas les mêmes schémas comportementaux à l’infini. Certains sites Web surveillent la fréquence des demandes et si les demandes sont envoyées périodiquement avec exactement le même modèle, comme une fois par seconde, le mécanisme anti-scraping sera très probablement activé.

Solution: Configurer un délai variable pour chaque étape de votre robot d’exploration. Avec une vitesse de grattage aléatoire, le crawler se comporterait davantage comme la façon dont les humains naviguent sur un site Web.

Scenario 3: Certaines techniques anti-scraping de haut niveau intègrent des algorithmes complexes pour suivre les requêtes de différentes IP et analyser leurs requêtes moyennes. Si la requête d’une IP est inhabituelle, par exemple si elle envoie la même quantité de requêtes ou visite le même site web à la même heure chaque jour, elle serait bloquée. 

Solution: Modifier régulièrement votre IP. La plupart des services VPN, des serveurs cloud et des services proxy peuvent fournir des adresses IP tournantes. Lorsque les requêtes sont envoyées via ces IP tournantes, le robot se comporte moins comme un bot, ce qui peut réduire le risque de blocage.

Les défis du web scraping:

9 Défis de Web Scraping que Vous Devriez Connaître

5 choses que vous devez savoir sur le contournement de CAPTCHA pour le Web Scraping

2. Captcha

Avez-vous déjà vu ce genre d’image en naviguant sur un site web ?

1.Besoin d’un clic

2.Besoin de sélectionner des images spécifiques

3.Il faut taper/sélectionner la bonne chaîne de caractères(strings).

Ces images sont appelées Captcha. Captcha est l’acronyme de Completely Automated Public Turing test to tell Computers and Humans Apart. Il s’agit d’un programme automatique public permettant de déterminer si l’utilisateur est un humain ou un robot. Ce programme propose divers défis, tels qu’une image dégradée, des cases à remplir ou même des équations, qui ne peuvent être résolus que par un humain.

Ce test évolue depuis longtemps et, à l’heure actuelle, de nombreux sites web utilisent le Captcha comme technique anti-scraping. Il était autrefois très difficile de passer Captcha directement. Mais aujourd’hui, de nombreux outils open-source peuvent être utilisés pour résoudre les problèmes de Captcha, même s’ils nécessitent des compétences en programmation plus avancées. Certaines personnes construisent même leurs propres bibliothèques de fonctionnalités et créent des techniques de reconnaissance d’images avec des compétences en apprentissage automatique ou en apprentissage profond pour passer ce contrôle.

Il est plus facile de ne pas le déclencher que de le résoudre.

Pour la plupart des gens, le plus simple est de ralentir ou de rendre aléatoires les processus d’extraction afin de ne pas déclencher le test Captcha. L’ajustement du temps de délai ou l’utilisation d’IP tournantes peuvent réduire efficacement la probabilité de déclencher le test. 

 

3. Log-in

De nombreux sites Web, en particulier les plateformes de médias sociaux comme Twitter et Facebook, ne vous montrent des informations qu’après que vous vous soyez connecté au site. Afin d’explorer des sites de ce type, les robots d’exploration doivent également simuler les étapes de connexion. 

Après s’être connecté au site Web, le crawler doit enregistrer les cookies. Un cookie est un petit élément de données qui stocke les données de navigation des utilisateurs. Sans les cookies, le site Web oublierait que vous vous êtes déjà connecté et vous demanderait de vous connecter à nouveau.

En outre, certains sites web avec des mécanismes de scraping stricts peuvent n’autoriser qu’un accès partiel aux données, par exemple 1000 lignes de données par jour, même après connexion. 

Votre robot doit savoir comment se connecter

1) Simulez les opérations du clavier et de la souris. Le crawler doit simuler le processus de connexion, qui comprend des étapes telles que le fait de cliquer sur la zone de texte et les boutons “Connexion” avec la souris, ou de saisir les informations relatives au compte et au mot de passe avec le clavier.

2) Se connecter d’abord, puis enregistrer les cookies. Les sites Web qui autorisent les cookies se souviennent des utilisateurs en enregistrant leurs cookies. Grâce à ces cookies, il n’est pas nécessaire de se connecter à nouveau au site Web à court terme. Grâce à ce mécanisme, votre robot d’exploration peut éviter les étapes pénibles de connexion et récupérer les informations dont vous avez besoin. 

3) Si, malheureusement, vous rencontrez les mécanismes de scaping stricts ci-dessus, vous pouvez programmer votre crawler pour surveiller le site Web à une fréquence fixe, par exemple une fois par jour. Programmer le robot d’exploration pour qu’il scrape les 1000 lignes de données les plus récentes et les accumule par périodes.

4. UA

UA signifie User-Agent. Il s’agit d’un en-tête permettant au site web d’identifier le mode de visite de l’utilisateur. Il contient des informations telles que le système d’exploitation et sa version, le type de CPU, le navigateur et sa version, la langue du navigateur, un plug-in de navigateur, etc.

Un exemple d’UA: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_0) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11

Lors de l’exploration d’un site web, si votre crawler ne contient pas d’en-tête, il s’identifiera uniquement comme un script (par exemple, s’il utilise python pour construire le crawler, il s’identifiera comme un script python). Les sites Web bloqueraient certainement la demande provenant d’un script. Dans ce cas, le crawler doit se faire passer pour un navigateur avec un en-tête UA afin que les sites Web puissent lui donner accès.

Parfois, un site Web affiche des pages ou des informations différentes selon les navigateurs ou les versions, même si vous entrez sur le site avec la même URL. Il y a de fortes chances que les informations soient compatibles avec un navigateur alors que les autres navigateurs sont bloqués. Par conséquent, pour être sûr d’accéder à la bonne page, il faut utiliser plusieurs navigateurs et versions.

Passer d’une UA à l’autre pour éviter d’être bloqué.

Modifier les informations de l’UA jusqu’à ce que vous trouviez la bonne. Certains sites Web sensibles qui appliquent des techniques complexes de lutte contre le raclage peuvent même bloquer l’accès si vous utilisez la même UA pendant une longue période. Dans ce cas, vous devrez changer les informations d’UA périodiquement.

5. AJAX

De nos jours, de plus en plus de sites web sont développés avec AJAX au lieu des techniques traditionnelles de développement web. AJAX est l’abréviation de Asynchronous JavaScript and XML (JavaScript et XML asynchrones), qui est une technique permettant de mettre à jour le site Web de manière asynchrone. En bref, l’ensemble du site Web ne doit pas être rechargé lorsque de petites modifications sont apportées à la page.

Alors comment savoir si un site web applique AJAX ?

Un site Web sans AJAX : la page entière est rafraîchie même si vous n’effectuez qu’un petit changement sur le site. En général, un signe de chargement apparaît et l’URL change. Pour ces sites Web, nous pourrions tirer parti de ce mécanisme et essayer de trouver le modèle de changement d’URL. Vous pourriez alors générer des URL par lots et extraire directement des informations par le biais de ces URL au lieu d’apprendre à votre robot d’exploration à naviguer sur les sites Web comme les humains.

Un site Web avec AJAX : seul l’endroit où vous cliquez sera modifié et aucun signe de chargement n’apparaîtra. En général, l’URL du site ne change pas, de sorte que le robot d’exploration doit le traiter de manière simple.

Pour certains sites web complexes développés par AJAX, des techniques spéciales seraient nécessaires pour trouver des méthodes de cryptage uniques sur ces sites web et extraire les données cryptées. La résolution de ce problème peut prendre beaucoup de temps car les méthodes de cryptage varient selon les pages. Si vous trouvez un navigateur avec des opérations JS intégrées, il peut automatiquement décrypter le site Web et extraire les données. 

Les techniques de web scraping et d’anti-scraping progressent chaque jour. Peut-être ces techniques seront-elles dépassées au moment où vous lirez cet article. Cependant, vous pouvez toujours vous faire aider par nous, par Octoparse. Chez Octoparse, notre mission est de rendre les données accessibles à tous, en particulier aux personnes sans formation technique. En tant qu’outil de web-scraping, nous pouvons vous fournir des solutions prêtes à utiliser pour ces cinq techniques anti-scraping. Vous pouvez nous contacter si vous avez besoin d’un outil de web-scraping puissant pour votre entreprise ou votre projet !

Citer:

Megan Mary Jane. 2019. How to bypass anti-scraping techniques in web scraping. Extrait de: https://bigdata-madesimple.com/how-to-bypass-anti-scraping-techniques-in-web-scraping/


已发布

分类

作者:

标签

评论

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注