Dans le monde des robots d'indexation, Scrapy n'est rien de moins qu'un couteau suisse, puissant et flexible. Cependant, même l'outil le plus puissant a ses limites, en particulier lorsque vous visitez fréquemment certains sites web, vous êtes susceptible d'être ciblé par le mécanisme anti-crawler du site web. À ce stade, les IP proxy sont comme un camouflage de caméléon, permettant à votre crawler de voyager librement à travers le réseau. Aujourd'hui, nous allons voir comment configurer des IP proxy dans Scrapy pour que votre crawler soit comme un poisson hors de l'eau.
Qu'est-ce qu'une IP proxy ?
L'IP proxy, comme son nom l'indique, est une adresse IP qui accède à l'internet à votre place. Tout comme lorsque vous faites des achats en ligne, vous demandez parfois à un ami de faire les achats pour vous, l'IP proxy étant cet "ami". Grâce à l'IP proxy, vous pouvez cacher votre véritable IP pour éviter d'être bloqué par le site web cible.
Pourquoi utiliser une adresse IP proxy ?
L'utilisation d'une IP proxy présente de nombreux avantages, le plus simple étant d'éviter le blocage de l'IP. Lorsque vous visitez un site fréquemment, le serveur du site peut penser que vous êtes un crawler malveillant et bloquer votre IP. En utilisant une IP proxy, vous pouvez effectivement contourner ces restrictions et poursuivre votre collecte de données.
Comment définir l'IP du proxy dans Scrapy ?
Ensuite, nous allons vous montrer étape par étape comment mettre en place un proxy IP dans Scrapy. Le processus n'est pas compliqué et peut être réalisé en quelques lignes de code.
1. installer Scrapy
Tout d'abord, vous devez vous assurer que Scrapy est installé. Si vous ne l'avez pas encore, vous pouvez utiliser la commande suivante pour l'installer :
pip install scrapy
2. créer des projets Scrapy
Une fois l'installation terminée, créez un nouveau projet Scrapy :
scrapy startproject myproject
3) Modifier le fichier settings.py.
Ouvrez le fichier settings.py dans le répertoire du projet, trouvez l'élément de configuration `DOWNLOADER_MIDDLEWARES` et ajoutez ce qui suit :
DOWNLOADER_MIDDLEWARES = {
'scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware' : 110,
'myproject.middlewares.MyProxyMiddleware' : 100,
}
4. écrire un logiciel intermédiaire personnalisé
Ensuite, créez un fichier middlewares.py dans le répertoire de votre projet et ajoutez le code suivant :
import random
classe MyProxyMiddleware(objet).
proxy_list = [
'http://124.124.124.124:8080',
# Ajout d'autres IP de proxy
]
proxy = random.choice(proxy_list)
request.meta['proxy'] = proxy
Cet intergiciel sélectionne de manière aléatoire une IP proxy pour chaque requête, évitant ainsi l'utilisation fréquente de la même IP.
Comment obtenir une IP proxy ?
De nombreux fournisseurs proposent des services d'IP proxy sur le marché, et vous pouvez choisir le bon service en fonction de vos besoins. En général, les IP proxy payantes sont de meilleure qualité et plus stables. Bien sûr, il existe aussi des sites d'IP proxy gratuits, mais la qualité et la stabilité de ces IP peuvent être moins bonnes.
Test Proxy IP
La dernière étape consiste à vérifier que l'adresse IP de votre proxy fonctionne correctement. Vous pouvez écrire un simple crawler qui visite un site web affichant une adresse IP et voir si l'IP renvoyée correspond à l'IP proxy que vous avez mise en place.
import scrapy
classe IpSpider(scrapy.)
name = 'ip_spider'
start_urls = ['http://httpbin.org/ip']
def parse(self, response) : self.log(response.text)
self.log(response.text)
Exécutez ce crawler, si l'adresse IP renvoyée est la même que l'IP proxy que vous avez définie, alors félicitations, l'IP proxy a été définie avec succès !
résumés
Cette astuce vous permet non seulement de contourner le mécanisme anti-crawler, mais aussi d'améliorer l'efficacité de la collecte de données. J'espère que cet article vous a aidé à rendre votre projet de crawler plus fluide.
N'oubliez pas que l'exploration du web est une compétence et un art. Puissiez-vous grimper de plus en plus haut sur ce chemin !