
Was ist zu tun, wenn Crawler Guy auf Network 404 trifft?
Geschehen die Daten crawl Brüder verstehen, die meisten Angst vor der Situation ist: der Code läuft gut, plötzlich geben Sie ein Gesicht nicht funktionieren. Zu diesem Zeitpunkt achtzig Prozent wird durch die Ziel-Website Anti-Climbing-Mechanismus ausgelöst, direkt auf Ihre IP-Adresse aus dem kleinen schwarzen Raum. Dieses Mal müssen Sie einen Ersatz zu finden, um Ihnen zu helfen, zu arbeiten - das heißt, wir haben zu nörgeln heuteProxy-IP.
Ein Beispiel: Sie möchten mit der Python-Request-Bibliothek JSON-Daten aus der Ferne abrufen:
Einfuhrgesuche
url = 'https://api.example.com/data.json'
response = requests.get(url)
print(response.json())
Führen Sie ihn ein paar Mal aus, und Sie werden sehen, dass er einen 403-Fehler zurückgibt. Dies ist der Zeitpunkt, an dem Sie den Proxy-IP-Trick anwenden und den Server glauben lassen, dass eine andere Person zugreift.
Der richtige Weg zur Eröffnung einer Proxy-IP
Jetzt kommt der Knackpunkt! Bei der Verwendung einer Proxy-IP geht es nicht nur darum, eine zufällige Adresse zu finden und sie einzutragen, sondern es ist eine Frage der Strategie. Hier sind einige EmpfehlungenipipgoHeimservice, ihr IP-Pool ist so groß wie ein Meeresfrüchtemarkt, und sie können Ihnen bei jeder Anfrage eine neue Weste besorgen.
Der geänderte Code sieht wie folgt aus:
Einfuhrgesuche
proxies = {
'http': 'http://用户名:密码@gateway.ipipgo.com:9020',
'https': 'http://用户名:密码@gateway.ipipgo.com:9020'
}
try.
response = requests.get(url, proxies=proxies, timeout=10)
response.raise_for_status()
data = response.json()
except requests.exceptions.RequestException as e:: print(f "f", "f", "f", "f", "f", "f")
print(f "Anfrage Überschlag: {str(e)}")
Beachten Sie die Verwendung vonBenutzername Kennwort AuthentifizierungsformatViele Neulinge geben die IP-Adresse direkt ohne Authentifizierungsinformationen ein und können dann keine Verbindung herstellen. Das Proxy-Adressformat von ipipgo ist besonders einfach: Kopieren Sie es einfach gemäß der Dokumentation.
Ein praktischer Leitfaden zur Vermeidung von Fallstricken
Nennen Sie ein paar einfache Orte, an denen Sie Ihren Kopf aufstellen können:
1. die IP-Überlebensdauer: kostenloser Proxy wird oft zweimal verwendet, es wird empfohlen, den dynamischen kurzlebigen Proxy von ipipgo zu verwenden, jede Anfrage wird automatisch ersetzt!
2. die Timeout-EinstellungenVergessen Sie nicht, den Timeout-Parameter hinzuzufügen, empfohlen werden 5-10 Sekunden.
3. die Behandlung von AusnahmenWeb-Anfragen sind nicht so zuverlässig wie 100% und müssen ordnungsgemäß mit Try-Except versehen werden.
4 JSON-ParsingManchmal ist die Rückgabe kein Standard-JSON, verwenden Sie zunächst response.text, um die Originaldaten zu sehen.
Weißes QA Erste-Hilfe-Set
F: Was soll ich tun, wenn meine Proxy-IP immer wieder ausfällt?
A: Überprüfen Sie zunächst das Format der Proxy-Adresse, insbesondere die Sonderzeichen im Benutzernamen und im Passwort sollten in der URL verschlüsselt sein. Wenn Sie bestätigen, dass das Format in Ordnung ist, können Sie den ipipgo-Kundendienst kontaktieren, um den Knotenstatus zu überprüfen.
F: Muss ich meine IP jedes Mal manuell ändern?
A: Nicht mit dem Polling-Paket von ipipgo, sie wechseln automatisch auf der Gateway-Ebene, behalten Sie einfach die gleiche Proxy-Adresse im Code
F: Was soll ich tun, wenn ein Fehler beim SSL-Zertifikat auftritt?
A: Fügen Sie den Parameter verify=False in requests.get() hinzu, aber das ist nicht sehr sicher. Schlagen Sie vor, das System-Root-Zertifikat zu überprüfen oder den HTTPS-Proxy-Kanal von ipipgo zu verwenden.
Warum ipipgo?
Das ist kein Verkaufsargument, sondern eine Erfahrung mit Herz und Seele. Ich habe zuvor 7 oder 8 Dienstleister genutzt und mich schließlich aus drei Gründen für ipipgo entschieden:
1. die Reaktionsgeschwindigkeit ist ausreichend hoch, im Grunde innerhalb von 200ms
2. 200+ Stadtlinien im ganzen Land, sehr leistungsstark, wenn Sie IP in bestimmten Gebieten benötigen.
3. die Verwaltung im Hintergrund kann den Echtzeitverbrauch sehen, keine Angst vor Überschreitungen
4. Der technische Support ist ein echter Mensch. Das letzte Mal, als ich mitten in der Nacht um zwei Uhr einen Arbeitsauftrag erteilte, wurde er innerhalb einer Sekunde beantwortet.
Außerdem haben sie kürzlich ein neuesIntelligentes RoutingFunktion, kann automatisch die schnellste Zeile auswählen. Für die Szene, die JSON-Daten stabil lesen muss, ist es einfach die Existenz der Öffnung. Neue Benutzer-Registrierung sendet auch 5G Verkehr, genug zu testen.
Die ultimative Lösung
Eine Komplettlösung für die Reachers:
from requests.adapters import HTTPAdapter
session = requests.Session()
session.mount('http://', HTTPAdapter(max_retries=3))
session.mount('https://', HTTPAdapter(max_retries=3))
def fetch_json(url):
proxies = ipipgo.get_proxy() Ruft die API von ipipgo auf, um die neuesten Proxys zu erhalten.
try.
response = session.get(url, proxies=proxies, timeout=(3, 7))
return response.json()
except JSONDecodeError: print("JSONDecodeError", "JSONDecodeError").
print("Die zurückgegebenen Daten sind nicht im JSON-Format.")
return Keine
Diese Lösung fügt drei Versicherungen hinzu: Wiederholung der Verbindung, automatischer Erwerb einer neuen IP und Abfangen von Ausnahmen. Mit der API von ipipgo können Sie direkt die neueste verfügbare Proxy-Adresse abrufen, was viel weniger Aufwand bedeutet als die Verwaltung eines eigenen IP-Pools.
Um ehrlich zu sein, sind Proxy-IPs jeden Pfennig wert. Wenn das Projekt wichtig ist, sollten Sie nicht am Budget sparen. Schließlich kann der Verlust von Ausfallzeiten aufgrund von Serversperrungen viel teurer sein als die Proxy-Gebühr.

