
Mise en place d'un gilet d'agent dans Scrapy
Les frères Crawler le comprennent, ne pas avoir de proxy est comme un Internet nu, quelques minutes par le site bloqué IP. Aujourd'hui, nous prenons Scrapy pour ouvrir le couteau, dire comment lui donner de porter un bon gilet de proxy. Ici, pour utiliser leur propre service de proxy ipipgo exemple, pro-test efficace pour ne pas tirer faux.
Les trois axes de configuration du proxy de Scrapy
Commençons par la méthode de configuration la plus simple pour les novices :
Ajouter le matériel dans settings.py
DOWNLOADER_MIDDLEWARES = {
'scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware' : 543,
}
Branchez le proxy dans la requête spécifique
yield scrapy.Request(
url, meta={'proxy' : 'proxy')
meta={'proxy' : 'http://username:password@proxy.ipipgo.com:8000'}
)
ce type deMéthode de codage durIl convient pour des tests temporaires, si vous l'utilisez pendant une longue période, vous devez changer une méthode intelligente. En pratique, j'ai constaté que l'écriture d'un proxy mort directement dans les paramètres est facile à cibler par les mécanismes anti-crawling.
Les pools dynamiques de serveurs mandataires sont les plus importants
Les joueurs avancés utilisent des proxys rotatifs, et nous recommandons ici d'utiliser l'API d'ipipgo pour les obtenir dynamiquement :
import random
classe ProxyMiddleware.
def process_request(self, request, spider) : proxy_list = get_ipipgo_proxies() call ipipgo API interface.
proxy_list = get_ipipgo_proxies() appel de l'interface API ipipgo
proxy = random.choice(proxy_list)
request.meta['proxy'] = f "http://{proxy['ip']}:{proxy['port']}"
request.headers['Proxy-Authorisation'] = basic_auth_header(
proxy['user'], proxy['password']
)
Prenez soin de le manipuler.Défaillance du proxy Commutation automatiqueJe suggère d'ajouter un mécanisme de réessai dans la gestion des exceptions. L'API d'ipipgo a un bon temps de réponse, et il faut quelques millisecondes pour obtenir un nouveau proxy.
La porte d'entrée du fichier de configuration
Les pilotes plus anciens font leur travail dans settings.py et recommandent des paquets de configuration :
| élément de configuration | valeur recommandée |
|---|---|
| DEMANDES_CONCURRENTES | Ajusté pour les paquets proxy (30-50 recommandé pour les proxies dynamiques) |
| DÉLAI DE TÉLÉCHARGEMENT | Un réglage de 15 à 30 secondes est plus sûr |
| RETRY_TIMES | Suggérer 3 tentatives pour rester en sécurité |
Enregistrement des pièges réels
J'ai rencontré la situation la plus pitoyable : l'agent fonctionne manifestement, mais le crawler ne parvient pas à se connecter. Plus tard, j'ai découvert que c'étaitAuthentification SSLBon sang, l'ajout de ce paramètre à la demande résout immédiatement le problème :
request.meta['download_timeout'] = 30
request.meta['proxy'] = 'https://...' Notez le type de protocole
request.meta['dont_redirect'] = True Empêche les redirections d'abandonner le proxy
Questions fréquemment posées Trousse de premiers secours
Q : Que dois-je faire si l'agent tombe soudainement en panne ?
R : Ajoutez une capture d'exception dans le middleware pour extraire automatiquement les nouveaux agents d'ipipgo. Il est recommandé d'activer le contrôle de santé du proxy et d'expulser le pool à temps s'il est endommagé.
Q : Ramper comme une tortue ?
R : Vérifiez le type de paquet proxy. Dynamic Residence (Enterprise Edition) est 30% plus rapide que Standard Edition, si vous avez assez de budget pour passer directement à Static Residence, la vitesse s'envolera.
Q : Vous rencontrez toujours le CAPTCHA ?
R : Changez pour utiliser le proxy de ligne spéciale TK d'ipipgo, ce type d'IP résidentielle est moins susceptible de déclencher la vérification. Le vrai test après l'utilisation de ce code de vérification de ligne spéciale a montré que le taux a chuté de 70%.
Comment choisir un forfait ipipgo
Comparaison des paquets de recommandations personnelles :
- Petite chenille : dynamique résidentielle (standard) 7,67 yuans / GB, suffisamment d'économies pour pouvoir utiliser la chenille.
- Projets d'entreprise : directement sur le réseau résidentiel statique 35 yuans / IP, stable et non ballotté !
- Besoins particuliers : ligne spéciale transfrontalière pour faire face aux restrictions géographiques sur le site, qui utilise qui sait
Enfin, il a dit un creux : la configuration du proxy n'est pas une chose unique, en fonction de la stratégie anti-escalade du site cible, un ajustement flexible. Les frères avec ipipgo se souviennent de vivre avec leurs services personnalisés, le service client technique peut aider à ajuster la référence, que leur propre jet aveugle beaucoup plus fort.

