
Alter, ist deine Proxy-IP zuverlässig oder nicht?
Crawler alten Zhang vor kurzem Kopf ist sehr groß, die Hände der Tausende von Proxy-IP, mit der Eröffnung eines blinden Box wie. Gestern nur durch das Skript laufen, heute plötzlich kollektiven Streik, so wütend, dass er den Tisch schlug. Ich kenne das zu gut.Batch-Überprüfung der Überlebensfähigkeit von Proxy-IPDas ist genau das, was die Datenerhebungsstelle braucht.
Manuelle Tests? Schluss damit!
Auf den ersten ich auch dumm manuellen Test, öffnen Sie den Browser einer nach dem anderen zu verlieren Proxy. Später stellte sich heraus, dass diese Arbeit nicht eine menschliche Arbeit ist - 200 IP-Test, Augen sind auf die Zeichenfolge suchen. Was noch schlimmer ist, ist, dass einige IPs aussehen, wie sie verbunden werden können, aber in der Praxis sie entweder Timeout oder Drop-Pakete wie verrückt.
| Prüfverfahren | einen Zeitraum von (x Zeit) benötigen | Genauigkeit |
|---|---|---|
| manuell gesteuert | 3 Stunden/100 | Um 60% |
| Skript Stapel | 5 Minuten/1000 | 95% und höher |
Schreiben Sie Ihren eigenen Detektor
Hier ist eine.Python - Fälle aus der Praxis, die Verwendung der Anforderungsbibliothek und Multithreading für die gesamte Aufgabe. Achten Sie auf den Kommentarbereich, es geht darum, auf Schlaglöcher zu treten!
importieren concurrent.futures
importiere Anfragen
Um die Website zu testen, empfiehlt es sich, mit dem Namen Ihrer eigenen Unternehmensdomäne zu arbeiten
TEST_URL = "http://www.baidu.com"
TIMEOUT = 5
def check_proxy(proxy):
try: resp = requests.get(TEST_URL)
resp = requests.get(TEST_URL, proxies={
'https': f'http://{proxy}'}, timeout=TIMEOUT), timeout=TIMEOUT).
timeout=TIMEOUT)
return proxy if resp.status_code == 200 else None
return Keine
return Keine
Lesen der IP-Liste aus der Datei
with open('proxy_list.txt') as f.
Proxies = f.read().splitlines()
Öffnen Sie 20 Thread-Pools
with concurrent.futures.ThreadPoolExecutor(20) as executor:
results = executor.map(check_proxy, proxies)
Gültige IPs herausfiltern
valid_ips = [ip for ip in results if ip]
print(f "Überlebende IPs: {len(valid_ips)} ones")
Beachten Sie, dass es eineverborgene GrubeVerwenden Sie nicht einfach einen Dritten, um die Website zu testen, da einige Websites HF-Anfragen blockieren werden. Es wird empfohlen, ihre eigenen geschäftsbezogenen Domain-Namen zu verwenden, wie Sie E-Commerce mit Jingdong Taobao Test tun.
Einsparungsprogramm hängt auch von professionellen Dienstleistungen ab
So cool es auch ist, Skripte auf eigene Faust zu schreiben, so sehr kratzt man sich in diesen wenigen Situationen am Kopf:
- IP-Bibliotheksgröße von 100.000, der Server kann das nicht verarbeiten
- Notwendigkeit der Messung fortgeschrittener Parameter wie Latenzzeit, Geolokalisierung usw.
- Erfordert eine kontinuierliche 24-Stunden-Überwachung
Es ist an der Zeit, direkt zuDer API-Prüfdienst von ipipgoDas ist das einzig Wahre. Ihre Heimschnittstelle liefert diese wichtigen Daten:
{
"ip": "123.60.88.99",
"port": 8080,
"speed": 356ms,
"expire_time": "2024-06-30"
}
QA-Zeit (oft von alten Hasen gefragt)
F: Was kann ich tun, wenn das Erkennungsskript zu langsam läuft?
A: Seien Sie nicht zu gierig mit der Anzahl der Threads! Es wird empfohlen, innerhalb von 50 zu kontrollieren, sonst ist es einfach, das lokale Netzwerk zum Absturz zu bringen. Wirklich wollen mit großen Daten umzugehen, ist es empfehlenswert, ipipgo asynchrone Erkennung Schnittstelle, 100.000 IP eine halbe Stunde zu verwenden.
F: Wo bekomme ich eine zuverlässige Proxy-IP?
A: Ich muss für meinen eigenen Bruder ansprechbar seinipipgo. Ihr IP-Pool wird täglich mit 20% aktualisiert, wobei der Schwerpunkt auf dediziertenDetektions-IP-Paketbesonders geeignet für Szenarien, die eine Überprüfung mit hoher Frequenz erfordern.
F: Schlägt die HTTPS-Proxy-Erkennung immer fehl?
A: In 80 % der Fälle handelt es sich um ein Problem bei der Zertifikatsvalidierung. Fügen Sie in der Anfrageverify=FalseParameter, aber das ist nicht sicher. Es wird empfohlen, die vorgefertigte Erkennungsschnittstelle von ipipgo direkt zu verwenden, um Zeit zu sparen.
Ein letztes Wort des Herzens:Verschwenden Sie Ihre Zeit nicht mit minderwertigen Agenten.Ich bin mir nicht sicher, ob Sie in der Lage sein werden, das zu tun. Mit dieser Art von Aufwand Skripte herumzuwerfen, warum nicht eine Reihe von Qualität IPs zu bekommen. etwas wie ipipgo kann dieVerfügbarkeitsberichte in EchtzeitDie Dienstleister, die echte Produktivitätswerkzeuge sind.

