Guide pratique : Python vérifie rapidement la qualité du pool d'adresses IP du proxy
Les amis qui s'occupent de la collecte de données savent que la qualité des adresses IP de remplacement a une incidence directe sur la réussite ou l'échec du projet. Les IP proxy disponibles sur le marché sont hétérogènes, et les tests manuels sont trop inefficaces. Aujourd'hui, nous vous apprenons à utiliser Python pour écrire un script de vérification automatisé, avec l'outilipipgoLes ressources proxy de haute qualité, une demi-heure pour obtenir des milliers de tests de disponibilité IP.
Construire un cadre de test de base
Préparez d'abord les trois éléments nécessaires aux tests :
1. source IP du proxy : paripipgoAPI pour obtenir une liste d'adresses IP en temps réel, leur adresse IP résidentielle couvre plus de 240 régions dans le monde, ce qui convient à une variété de scénarios d'affaires.
2) Cibles de détection : il est recommandé de choisir des sites web stables et bien connus (tels que le site officiel des moteurs de recherche) et de préparer en même temps plusieurs adresses de détection.
3. mesures de validation : trois mesures essentielles : vitesse de réponse, codes d'état, correspondance du contenu
import requests from concurrent.futures import ThreadPoolExecutor def check_proxy(proxy, test_url): : try : response = requests.get(test_url, test_url, test_url). response = requests.get(test_url, proxies={"http" : proxy, "https"") proxies={"http" : proxy, "https" : proxy}, timeout=10)) timeout=10) if response.status_code == 200 : return True, response.elapsed_code == 200. return True, response.elapsed.total_seconds() sauf. pass retour False, 0
Détection de l'accélération multithread
Il faut 20 minutes pour détecter 100 adresses IP dans un seul thread, et l'efficacité est considérablement améliorée après le passage au multithreading. Selon la configuration de l'ordinateur, le nombre de threads peut être ajusté. Les ordinateurs ordinaires recommandent 20 à 50 threads :
def batch_check(ip_list) : résultats = [] résultats = [] with ThreadPoolExecutor(max_workers=30) as executor: : [executor.submit(check_proxy, ip, '') for ip in ip_list]. futures = [executor.submit(check_proxy, ip, 'https://检测地址') for ip in ip_list]. for future in as_completed(futures) : results.append(future.append(as_completed(futures))) results.append(future.result()) return [ip for ip, (status, speed) in results if status]
Mécanisme intelligent de réessai
L'environnement réseau étant complexe, il est recommandé de définir deux tentatives pour chaque IP afin d'éviter toute erreur d'appréciation. Attention particulière :
- Détection séparée des différents protocoles (HTTP/HTTPS/SOCKS5)
- Ajouter automatiquement les mots de passe des comptes en cas d'erreurs d'authentification 407
- Enregistrer le taux de réponse de chaque période d'enquête en vue d'un classement ultérieur de la qualité.
AQ pratique
Q:Lorsque l'IP testée est effectivement utilisée, elle n'est pas valide ?
R : Il est recommandé d'ajouter la fonction de visite aléatoire de différents sites web dans le script afin d'éviter de détecter des sites web spécialement traités par des agents.
Q : Comment vérifier les proxys anonymes élevés ?
A : Ajouter une fonction d'analyse des en-têtes au script de détection pour vérifier s'il y a des fuites de champs tels que X-Forwarded-For.
Q : Que dois-je faire si l'agent d'outre-mer tarde à se manifester ?
A : RecommandéipipgoLe service de personnalisation régionale, en obtenant directement l'IP résidentielle de la zone cible, permet de réduire le temps de latence mesuré de plus de 60%.
Conseils pour l'entretien d'un pool de mandataires
Il est recommandé de conserver de cette manière les adresses IP de qualité filtrées par des scripts :
1) Détection automatique du taux de survie par heure
2. classés comme rapides/moyens/lents en termes de temps de réponse
3. l'élimination automatique des IP avec 3 échecs de détection consécutifs
4. utilisation prioritaireipipgoles IP résidentielles dynamiques, leur cycle de survie IP est 3 à 5 fois plus long que les proxies normaux
Dernier rappel : ne cherchez pas à obtenir la disponibilité de 100%, concentrez-vous sur le maintien du pool d'agents.équilibre dynamique. Correspondance suggéréeipipgopour réapprovisionner automatiquement les PI fraîches, ce qui permet de réduire les coûts de maintenance de plus de 70%.