
Lorsqu'un crawler rencontre un mécanisme anti-crawler
Les amis qui font du crawl de données ont dû vivre une telle scène : il suffit de lancer le script du crawler pour recevoir le lendemain l'erreur 403 du site cible. Le mécanisme anti-escalade est comme un ressort, plus vous êtes féroce, plus il est fort. À l'heure actuelleCrawler distribué + IP proxyLes combinaisons reviennent à mettre une cloche d'or à un reptile.
La seule et unique solution Scrapy-Redis
Scrapy-Redis permet de stocker les tâches dans la file d'attente de Redis, de sorte que plusieurs machines peuvent travailler ensemble. Par exemple, comme dans la cuisine d'un restaurant de plats chauds : les maîtres-hachoirs, les maîtres-cuisiniers, les maîtres-friteurs ont leurs propres tâches, mais tous regardent le tableau de commande central pour travailler.
| Scrapy traditionnel | Scrapy-Redis |
|---|---|
| fonctionnement autonome | collaboration multi-ordinateurs |
| file d'attente de la mémoire | Persistance Redis |
| poursuite manuelle de l'ascension | Connexion automatique au point d'arrêt |
La bonne façon d'ouvrir un proxy IP
De nombreux débutants utilisent des adresses IP de proxy comme clé principale, mais se rendent compte qu'elles sont bloquées plus vite que nues. Voici uneLes trois choses à faire et à ne pas fairePhrase d'accroche :
contraindreRotation dynamique de l'IP,contraindreLes agents de haute sécurité,contraindreIdentification des zones ;
s'abstenir deIP fixe,s'abstenir deAgents transparents,s'abstenir deSauter d'un endroit à l'autre de la région.
C'est une nécessité pour mon propre frère.Service proxy ipipgoLeurs pools d'adresses IP dynamiques prennent en chargeChangement de lignes urbaines à la demandeLe taux de réussite peut monter en flèche, passant de 401 TP3T à 921 TP3T. Par exemple, lorsqu'un site web immobilier est saisi, utilisant l'IP de Chengdu pour accéder aux listes de Chengdu et l'IP de Shanghai pour saisir les données de Shanghai, le site web ne peut tout simplement pas déterminer s'il s'agit d'une personne réelle ou d'une machine.
Conseils pratiques de configuration
Ajoutez ces lignes de configuration des clés à settings.py (notez que vous remplacez your_username par le compte que vous avez enregistré avec ipipgo) :
DOWNLOADER_MIDDLEWARES = {
'scrapy.downloadermiddlewares.retry.RetryMiddleware' : 90,
'scrapy_proxies.RandomProxy' : 100
}
PROXY_LIST = 'https://api.ipipgo.com/proxy?username=your_username&format=txt'
PROXY_MODE = 0 mode de rotation automatique
Voici un piège à éviter : l'API ipipgo renvoie l'élémentAdresse de procuration avec effet immédiatL'avantage est qu'il n'est pas nécessaire de maintenir un pool d'IP. L'avantage est que vous n'avez pas à gérer leur propre pool d'IP, l'inconvénient est que chaque demande doit être ré-acquise, mais la vitesse de réponse de leur interface est suffisamment rapide, la latence mesurée étant inférieure à 200 ms.
Guide pratique pour éviter la fosse
Récemment, j'ai rencontré un problème typique lorsque j'ai aidé un client à capturer une plateforme de commerce électronique : j'ai évidemment utilisé une IP proxy, mais le CAPTCHA s'est quand même déclenché. Plus tard, j'ai découvert qu'il s'agissaitLes cookies ne changent pas avec l'IP. La solution consiste à ajouter un crochet dans l'intergiciel :
def process_request(self, request, spider).
request.meta['proxy'] = get_new_proxy()
request.headers['Cookie'] = generate_fake_cookie()
retour Aucun
Il est également recommandé d'utiliser le logiciel ipipgoAgents de maintien de la sessionLe proxy de longue durée peut conserver la même adresse IP de sortie pendant 15 minutes, ce qui est suffisant pour achever le processus complet de connexion et de navigation. Leur proxy longue durée peut conserver la même IP de sortie pendant 15 minutes, ce qui est suffisant pour achever le processus complet de connexion-navigation-commande.
Foire aux questions QA
Q : Que dois-je faire si l'IP de mon proxy est lente ?
R : Choisissez en priorité le même agent géographique (par exemple, attrapez le site web de Guangdong avec l'IP de Guangdong), le support ipipgo est précis au niveau du positionnement de la ville. En outre, vérifiez si la relance automatique est activée et réglez le délai d'attente sur 8 à 10 secondes, ce qui est plus raisonnable.
Q : Comment puis-je savoir si une procuration est en vigueur ?
A : Test dans le shell scrapy :
fetch('http://httpbin.org/ip', meta={'proxy':'ipipgo's proxy address'})
Voir si l'adresse IP renvoyée change
Q : Que dois-je faire si je rencontre un site web qui bloque tout le segment IP ?
R : C'est pourquoi nous recommandons ipipgo, dont les ressources IP couvrent les trois principaux opérateurs et plus de 200 villes dans tout le pays, et qui coupe immédiatement les lignes urbaines en cas de blocage, ce qui est plus souple que de changer de segment IP.
Un dernier mot qui dérange, être un crawler relève des arts martiaux. Fixez des intervalles de requête raisonnables, avec un service proxy fiable comme ipipgo, afin d'aller plus loin sur la voie de l'acquisition de données. N'attendez pas que votre compte soit bloqué et votre IP supprimée pour vous rappeler qu'il faut contrôler les vents.

