Configuration pratique de l'intergiciel proxy Scrapy
Les étudiants qui ont fait de la collecte de données ont rencontré le problème du blocage anti-escalade, qui nécessite une IP proxy pour casser le jeu. Aujourd'hui, j'aimerais partager avec vousSchémas de configuration pratiques pour l'intergiciel Proxy dans le cadre ScrapyCombiné avec les ressources IP proxy de haute qualité d'ipipgo, il rend le fonctionnement de votre crawler plus stable.
I. Pourquoi Scrapy a besoin d'un intergiciel proxy
Lorsque le site web cible détecte un grand nombre de demandes provenant de la même adresse IP, il limite la vitesse d'accès dans un cas léger, ou bloque directement l'adresse IP dans un cas lourd. Ceci peut être réalisé par le biais d'un logiciel intermédiaire de type proxy :
1. commutation automatique de différentes adresses IP
2. dépasser la limite de fréquence des demandes
3. éviter de déclencher des mécanismes anti-escalade sur les sites web
II. configuration de l'intergiciel de l'agent de base
Ajouter une nouvelle classe d'intergiciel proxy au fichier middlewares.py du projet Scrapy :
classe IpProxyMiddleware.
def process_request(self, request, spider) : proxy = "".
proxy = "http://用户名:密码@gateway.ipipgo.com:端口"
request.meta['proxy'] = proxy
Notez la substitutionNom d'utilisateur, mot de passe, portpour ipipgo, il est recommandé de stocker les informations sensibles dans le fichier de configuration settings.py.
Troisièmement, le combat proprement dit : le proxy intelligent de rotation IP
L'utilisation directe d'un proxy fixe n'est pas assez flexible, nous recommandons d'utiliser la fonctionAgents résidentiels dynamiquesen conjonction avec l'API pour permettre des changements automatiques d'IP :
import random
from scrapy import Request
classe RandomProxyMiddleware.
def __init__(self, api_url) : self.proxy_list = [...].
self.proxy_list = [...]. Récupérer le dernier pool de proxy via l'API ipipgo
def process_request(self, request, spider) : self.proxy_list = [...].
proxy = random.choice(self.proxy_list)
request.meta['proxy'] = proxy
request.headers['Proxy-Authorisation'] = basic_auth_header
def update_proxies(self).
Appel temporisé à l'API ipipgo pour mettre à jour le pool de proxy.
Quatrièmement, la plateforme de commerce électronique recueille des cas pratiques
Prenons l'exemple de la collecte de données sur les produits d'une plateforme de commerce électronique :
1) Activer le middleware dans settings.py
2) Configurer l'intervalle entre les appels API pour ipipgo (5-10 minutes Changement d'IP recommandé)
3) Mise en place d'un mécanisme de relance en cas d'exception
4. ajouter un délai de demande (0,5-1 seconde)
Exemple de configuration du fichier settings.py
DOWNLOADER_MIDDLEWARES = {
'project.middlewares.RandomProxyMiddleware' : 543,
}
PROXY_API = "https://api.ipipgo.com/getproxy"
RETRY_TIMES = 3
DOWNLOAD_DELAY = 0.7
V. Foire aux questions AQ
Q : Que dois-je faire si l'adresse IP de mon proxy échoue fréquemment ?
R : Il est recommandé d'utiliser la fonctionAgents résidentiels dynamiquesLe cycle de survie IP a été spécialement optimisé et, grâce au mécanisme de commutation automatique, il peut résoudre efficacement le problème.
Q : Que dois-je faire si je rencontre une validation CAPTCHA ?
A : ipipgo'sAgent résidentielL'IP du réseau domestique réel, avec une fréquence de collecte raisonnable, peut réduire de manière significative la probabilité de déclencher le CAPTCHA.
Q : Les sites HTTPS nécessitent-ils une configuration particulière ?
R : ipipgo prend en charge le proxy de protocole complet, il suffit d'ajouter le code suivant dans l'intergiciel :
request.meta['proxy'] = "https://" + proxy
VI. pourquoi ipipgo
1. Couverture mondialeLes services d'acquisition de lieux : plus de 240 pays et régions sont pris en charge pour l'acquisition de lieux
2. Anonymat élevéIP résidentielle réelle, pas de fonction proxy dans l'en-tête de la requête
3. Accord terminéLes protocoles HTTP/HTTPS/SOCKS5 sont parfaitement pris en charge.
4. l'assurance qualité (AQ)IP pool : pool d'IP mis à jour quotidiennement avec plus de 90 millions de ressources disponibles
Grâce à une configuration raisonnable du middleware proxy, combinée aux ressources proxy de haute qualité d'ipipgo, vous pouvez résoudre efficacement le problème de restriction d'IP dans le processus de collecte. Il est recommandé de tester d'abord l'effet spécifique par le biais d'un essai gratuit, et de choisir la solution de proxy la plus appropriée en fonction des exigences de l'entreprise.