
Un guide pour construire un pool de proxy pour les robots d'indexation.
Les confrères engagés dans le crawling doivent comprendre que le mécanisme anti-climbing du site cible est comme un jeu de gopher. Aujourd'hui, nous vous apprenons à utiliser le pool d'IP proxy d'ipipgo pour armer le crawler, et à faire des tests personnels pour réduire la probabilité du sceau 80%. Divisons-nous en deux genres : Scrapy old drivers et Requests novice village.
Solution de relooking pour les vétérans de la ferraille
Il vous suffit de vous pencher sur le fichier middlewares.py, qui contient un modèle de configuration en temps réel :
classe ProxyMiddleware(objet).
def __init__(self).
self.proxy_api = "http://ipipgo.com/api/get?type=dynamic&count=10"
def process_request(self, request, spider).
Mise à jour du pool d'IP toutes les 5 minutes
if not hasattr(spider, 'proxy_pool') or time.time() - spider.proxy_time > 300 : spider.proxy_pool = requests
spider.proxy_pool = requests.get(self.proxy_api).json()['data']
spider.proxy_time = time.time()
Choisir aléatoirement une IP chanceuse
proxy = random.choice(spider.proxy_pool)
request.meta['proxy'] = f "http://{proxy['ip']}:{proxy['port']}"
N'oubliez pas d'activer ce middleware dans les paramètres !
Voici le point clé :Il est recommandé de fixer la période de validité de l'IP à 3-5 minutes. Les formules résidentielles dynamiques d'ipipgo permettent de personnaliser les limites de temps, ce qui répond parfaitement à ce besoin. Il a été testé que l'utilisation de la fonction de localisation au niveau de la ville peut réduire efficacement le contrôle des risques liés à la connexion hors site.
Demande de manœuvres de fantaisie pour la fête
Les joueurs à un seul fil regardent ici et vous enseignent une méthode de rotation paresseuse :
from itertools import cycle
def get_proxies().
Génère des liens API directement à partir du backend ipipgo.
return [f"{ip}:{port}" for ip in requests.get('ipipgo backend link').json()]
proxy_pool = cycle(get_proxies())
while True : proxy_pool = cycle(get_proxies())
try : current_proxy = next(proxy)
current_proxy = next(proxy_pool)
res = requests.get(url, proxies={
"http" : current_proxy, "https" : current_proxy, "https" : current_proxy
"https" : current_proxy
}, timeout=10)
timeout=10)
except.
print(f"{current_proxy} a échoué, passez au suivant !")
N'oubliez pas d'ajouter un mécanisme de réessai dans le traitement des exceptions. L'IP résidentielle statique d'ipipgo convient aux scénarios qui nécessitent de longues sessions, comme la simulation de la saisie de données après l'ouverture d'une session.
Guide pour éviter la fosse (session AQ)
Q:Que dois-je faire si mon IP proxy ne fonctionne pas lorsque je l'utilise ?
R : Vérifiez d'abord le type de paquet, la limite de temps par défaut pour les résidences dynamiques est de 1 minute. Il est suggéré d'ajouter une détection de survie dans le code, une absence de réponse de plus de 30 secondes entraînant une commutation automatique. La version entreprise du progiciel d'ipipgo permet d'étendre la limite de temps à 30 minutes !
Q : Le fait d'avoir plus d'un crawler en même temps va-t-il voler l'IP ?
R : Utiliser le système de compte pour isoler, l'arrière-plan d'ipipgo peut créer des sous-comptes, assigner des clés indépendantes à chaque crawler, de sorte qu'ils ne se bousculent pas les uns les autres.
Q : Que dois-je faire en cas de bombardement du CAPTCHA ?
R : Deux options : 1) changer les adresses IP résidentielles statiques ; 2) ajouter les empreintes digitales de l'appareil dans l'en-tête de la requête. La solution TikTok d'ipipgo dispose d'un module d'émulation d'appareil qui peut être utilisé comme référence.
Quel forfait dois-je choisir ?
Selon les scénarios d'entreprise ci-contre :
| prendre | Paquets recommandés | domination |
|---|---|---|
| Collecte de données de routine | Dynamique résidentielle (standard) | 0,5/GB avec rotation automatique |
| Missions de surveillance à long terme | Maisons statiques | IP fixe disponible pendant 7 jours |
| Crawler d'entreprise | Dynamic Residential (Entreprise) | Pool IP exclusif + protocoles personnalisés |
J'ai récemment découvert une petite astuce : dans les paramètres du backend d'ipipgoprotocole shuntLa première consiste à répartir les requêtes HTTP et HTTPS dans différents pools IP, ce qui peut améliorer la vitesse de collecte d'environ 20%. En particulier pour la surveillance des prix du commerce électronique, pro-test est efficace !
Enfin, j'aimerais vous rappeler de ne pas perdre votre temps avec des proxies gratuits. J'ai déjà testé les proxies bon marché que j'ai achetés sur somebay, 8 sur 10 sont des IP blacklistées, autant utiliser le pack d'essai pour débutants d'ipipgo, ne payez pas pour les premiers 2GB de toute façon.

