
Praktische Anleitung: Python prüft schnell die Qualität des Proxy-IP-Pools
Freunde, die Datenerhebungen durchführen, wissen, dass sich die Qualität der Proxy-IP direkt auf den Erfolg oder Misserfolg des Projekts auswirkt. Die auf dem Markt erhältlichen Proxy-IPs sind uneinheitlich, und die manuelle Prüfung ist zu ineffizient. Heute zeigen wir Ihnen, wie Sie mit Python ein automatisiertes Verifizierungsskript schreiben können, und zwar mit demipipgoDie hohe Qualität der Proxy-Ressourcen, eine halbe Stunde, um Tausende von IP-Verfügbarkeit zu testen.
Aufbau eines grundlegenden Test-Frameworks
Bereiten Sie zunächst die drei für die Prüfung benötigten Elemente vor:
1. proxy IP-Quelle: durchipipgoAPI zum Abrufen einer IP-Liste in Echtzeit, die IP-Adresse des Wohnsitzes deckt 240+ Regionen weltweit ab, geeignet für verschiedene Geschäftsszenarien
2) Erkennungsziele: Es wird empfohlen, stabile und bekannte Websites zu wählen (z. B. die offizielle Website einer Suchmaschine) und gleichzeitig mehrere Erkennungsadressen vorzubereiten.
3) Validierungsmetriken: drei Hauptmetriken: Antwortgeschwindigkeit, Statuscodes, Übereinstimmung des Inhalts
import requests
from concurrent.futures importieren 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()
außer.
übergeben.
return False, 0
多线程代理ip检测
Es dauert 20 Minuten, um 100 IPs in einem einzigen Thread zu erkennen, und die Effizienz wird nach dem Wechsel zu Multi-Threading erheblich verbessert. Je nach Computerkonfiguration kann die Anzahl der Threads angepasst werden. Für normale Computer werden 20-50 Threads empfohlen:
def batch_check(ip_list): results = []
ergebnisse = []
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]
Intelligenter Wiederholungsmechanismus
Die Netzwerkumgebung ist komplex, es wird empfohlen, 2 Wiederholungsversuche für jede IP einzustellen, um Fehleinschätzungen zu vermeiden. Besondere Aufmerksamkeit:
- Getrennte Erkennung von verschiedenen Protokollen (HTTP/HTTPS/SOCKS5)
- Automatisches Hinzufügen von Kontokennwörtern im Falle von 407 Authentifizierungsfehlern
- Erfassen Sie die Rücklaufquote jedes UZ für die spätere Qualitätseinstufung
Praktische QA
Q:Wenn die geprüfte IP tatsächlich verwendet wird, ist sie ungültig?
A: Es wird empfohlen, die Funktion des zufälligen Besuchs verschiedener Websites in das Skript aufzunehmen, um zu vermeiden, dass Websites entdeckt werden, die speziell von Agenten bearbeitet werden
F: Wie werden hoch anonyme Proxys überprüft?
A: Fügen Sie dem Erkennungsskript eine Header-Parsing-Funktion hinzu, um zu prüfen, ob undichte Felder wie X-Forwarded-For
F: Was soll ich tun, wenn der Inlandsvertreter nur langsam ermittelt?
A: Empfohlenipipgo的区域定制服务,直接获取目标地区的住宅IP,实测可降低60%以上
Tipps für die Pflege eines Proxy-Pools
Es wird empfohlen, die durch Skripte gefilterten Qualitäts-IPs auf diese Weise zu erhalten:
1. stündliche automatische Erkennung der Überlebensrate
2. in Bezug auf die Reaktionszeit als schnell/mittel/langsam eingestuft
3. automatische Eliminierung von IPs mit 3 aufeinanderfolgenden Erkennungsfehlern
4. vorrangige Nutzungipipgodynamische private IPs, deren IP-Überlebenszyklus 3-5 Mal länger ist als bei normalen Proxys
Letzte Mahnung: Jagen Sie nicht der Verfügbarkeit von 100% hinterher, sondern konzentrieren Sie sich auf den Erhalt des Agentenpoolsdynamisches Gleichgewicht. Vorgeschlagene Übereinstimmungipipgos intelligente Planungs-API, um automatisch neue IPs aufzufüllen, so dass die Wartungskosten um mehr als 70% gesenkt werden können.

