
Tout d'abord, pourquoi votre crawler doit-il utiliser une adresse IP proxy ?
Les frères crawlers comprennent que le mécanisme anti-escalade du site est comme la sécurité d'une communauté - vous entrez et sortez tous les jours par la même porte plus d'une douzaine de fois, les gens ne vous arrêtent pas, ils sont seulement étranges. En ce moment, l'IP proxy est votre porte-clés de rechange, chaque fois que vous utilisez une clé différente pour ouvrir la porte, l'agent de sécurité ne peut pas se rappeler à quoi vous ressemblez.
Prenons un exemple concret : une plateforme de commerce électronique avec un crawler ordinaire demande en continu, moins d'une demi-heure pour être bloqué IP. changer pour un pool d'IP proxy dynamique, la collecte continue pendant trois jours n'a pas déclenché le blocage. C'est la magie de la rotation des IP, qui permet au site web cible de penser que différents utilisateurs le visitent.
Deuxièmement, la configuration de l'intergiciel Scrapy comporte trois étapes
Commençons par les choses sérieuses et examinons directement le code de configuration de base :
Ajoutez ces deux lignes à settings.py
DOWNLOADER_MIDDLEWARES = {
'votre_projet.middlewares.ProxyMiddleware' : 543,
}
Ecrivez cette classe dans middlewares.py
classe ProxyMiddleware(objet).
def process_request(self, request, spider) :
proxy = "http://用户名:密码@gateway.ipipgo.com:端口"
request.meta['proxy'] = proxy
Voici un piège à éviter : de nombreux tutoriels apprennent aux gens à utiliser des proxys gratuits, et ils finissent par se gratter la tête lorsqu'ils ne parviennent pas à se connecter. Il est recommandé d'utiliser leipipgo Proxy résidentiel dynamiqueLe format de leur adresse proxy est gateway.ipipgo.com, n'oubliez pas de remplacer le mot de passe de votre propre compte.
III. rotation automatique de l'opération tarte
Changer de proxy manuellement est trop faible, jouons avec l'automatisation :
import random
classe ProxyRotatorMiddleware.
def __init__(self).
self.proxy_list = [
"http://user1:pass1@gateway.ipipgo.com:30001",
"http://user2:pass2@gateway.ipipgo.com:30002", ...
... Plus de noeuds de proxy
]
def process_request(self, request, spider) :
proxy = random.choice(self.proxy_list)
request.meta['proxy'] = proxy
spider.logger.debug(f "Utilise actuellement le proxy : {proxy}")
le déplacement (par exemple, de l'essence ou du carburant diesel)ipipgo Dynamic Residential Enterprise PackageLe premier est que l'adresse IP de chaque pays est automatiquement remplacée par l'adresse IP d'un autre pays pour chaque demande. Un ami spécialiste du commerce électronique transfrontalier a utilisé cette méthode pour collecter les prix des marchandises de 10 pays en même temps, et le taux de réussite est passé directement de 47% à 92%.
IV. kit d'expérience pratique anti-blocage
Voici quelques nids-de-poule dans lesquels j'ai personnellement marché :
- N'utilisez pas les pools de proxy publics ! L'année dernière, l'interface proxy publique d'un crawler a été bloquée à grande échelle.
- Ne soyez pas trop avare dans le réglage du délai d'attente, 3 à 5 secondes sont recommandées pour être plus prudent.
- Ne vous laissez pas impressionner par le CAPTCHA, nous vous recommandons d'utiliser le CAPTCHA.ipipgo static residential proxyMaintenir de longues conversations
V. Pourquoi recommandez-vous ipipgo ?
| exigence fonctionnelle | Paquets recommandés | Comparaison des effets |
|---|---|---|
| Collecte de données de routine | Dynamique résidentielle (standard) | Durée de survie de la période d'enquête 5-15 minutes |
| Crawl à haute fréquence | Dynamic Residential (Entreprise) | Prise en charge de plus de 100 demandes par seconde |
| Besoins de stabilisation à long terme | Maisons statiques | IP unique disponible pour 24 heures + |
Kit de premiers secours QA
Q : Que dois-je faire si l'agent tombe soudainement en panne ?
R : Vérifiez la date d'expiration du compte, s'il s'agit d'un utilisateur ipipgo, il y a une surveillance de l'utilisation en temps réel en arrière-plan, il est recommandé de mettre en place un avertissement d'utilisation.
Q : Comment puis-je vérifier si l'agent est valide ?
R : Utilisez cette commande pour une détection rapide : curl -proxy http://代理地址 -I https://www.example.com
Q : Dois-je travailler avec plusieurs comptes ?
R : En fonction de l'échelle de l'entreprise, l'utilisation d'ipipgo dynamic package à petite échelle est suffisante. L'exploitation quotidienne de millions de données est recommandée avec la version entreprise + plusieurs sous-comptes.

