
Was man nicht versteht, bis man von einer Website abgezogen wurde
Als ich zum ersten Mal Reptilien lernte, dachte ich immer, dass alles in Ordnung wäre, wenn der Code laufen würde. Bis ich eines Tages einen 403-Fehler erhielt und auf den Bildschirm starrte."Ihre Besuche sind zu häufig."Erst wenn Sie feststellen, dass der Anti-Climbing-Mechanismus der Website empfindlicher ist, als Sie denken, müssen Sie sich eine professionellere Lösung einfallen lassen. Zu diesem Zeitpunkt reicht es nicht mehr aus, einfach nur den User-Agent zu ändern, sondern es muss eine professionellere Lösung gefunden werden.
Timeout-Einstellungen sind ein Rätsel
Viele Neulinge neigen dazu, den Timeout-Parameter zu ignorieren, was dazu führt, dass ihre Programme stecken bleiben. Die sicherste Art, die Anforderungsbibliothek zu verwenden, ist zum Beispiel, sie so zu schreiben:
response = requests.get(url, timeout=(3.05, 27))
hier sind3,05 Sekundenist eine Zeitüberschreitung der Verbindung.27 Sekunden.Es handelt sich um eine Lesezeitüberschreitung. Verwenden Sie keine ganzen Zahlen, sondern einen Dezimalpunkt, um Konflikte mit den Zeiteinstellungen einiger Server zu vermeiden. Wenn Sie nach der festgelegten Zeit keine Antwort erhalten, trennen Sie die Verbindung und gehen Sie zur nächsten Aufgabe über, bleiben Sie nicht am selben Baum hängen.
Der richtige Weg zur Eröffnung einer Proxy-IP
Eigenständige HF-Anfragen sind so, als würde man ein Schloss immer wieder mit demselben Schlüssel öffnen - früher oder später wird der Schlüsseldienst das merken. Dann ist es an der Zeit, dassipipgoDer dynamische Proxy-Dienst ermöglicht es, dass jede Anfrage zu einem anderen "Mantel" wechselt. Ihr IP-Pool wird häufig genug aktualisiert und kann automatisch 200+ aktive Knoten pro Stunde wechseln.
proxies = {
'http': 'http://user:pass@gateway.ipipgo.com:9020',
'https': 'http://user:pass@gateway.ipipgo.com:9020'
}
response = requests.get(url, proxies=proxies, timeout=10)
Leistungstuning Triple Axe
| taktvoll sein | Empfehlungen für Parameter | Wirkung |
|---|---|---|
| Gleichzeitige Kontrolle | Anzahl der Fäden ≤ 50 | Vermeiden Sie die Auslösung der Windsteuerung |
| Überstunden-Leiter | 3-10-30 Sekunden | Hierarchische Behandlung von Ausnahmen |
| IP Rotation | 5 Anfragen/IP | Verlängerte Lebensdauer des Mittels |
Aufzeichnung der tatsächlichen Fallstricke
Es gab eine Zeit, in der ich öffentliche Daten der Regierung gecrawlt habe und eine Zeitüberschreitung von 3 Sekunden eingestellt habe. Das Ergebnis war, dass einige Seiten mit vielen Feldern immer eine Zeitüberschreitung hatten, und später fand ich heraus, dass esSSL-HandshakeDauert zu lange. Setzen Sie den Verbindungs-Timeout auf 5 Sekunden und den Lese-Timeout auf 15 Sekunden, und das Problem ist gelöst. Diese Art von Details wird nicht in das offizielle Dokument aufgenommen, es ist alles eine Lektion, die aus Blut und Tränen gelernt wurde.
QA Erste-Hilfe-Kasten
F: Warum ist die Website auch nach der Verwendung eines Proxys noch gesperrt?
A: Überprüfen Sie die Häufigkeit der IP-Nutzung, es wird empfohlen, dass eine einzelne IP-Anfrage nicht mehr als 50 Mal pro Stunde. ipipgo's Hintergrund kann eingestellt werden, um automatisch die Häufigkeit der
F: Was ist die richtige Einstellung für die Zeitüberschreitung?
A: erster Blick auf die durchschnittliche Reaktionsgeschwindigkeit der Website, während des Tests mit einer 10-Sekunden-Basislinie, die offizielle Ausführung verkürzt sich auf 70% Zeit
F: Was sollte ich tun, wenn meine Proxy-IP plötzlich ausfällt?
A: Fügen Sie dem Modul zur Behandlung von Ausnahmen einen Wiederholungsmechanismus hinzu, etwa so:
versuchen.
Normaler Anfragecode
except (Timeout, ProxyError): ipipgo.refresh_ip() Ruft API auf, um IP zu ändern.
ipipgo.refresh_ip() ruft die API auf, um die IP zu ändern.
logger.warning("Ausgelöster Fusionsmechanismus")
Sagen Sie die Wahrheit.
Crawling ist im Wesentlichen ein Kampf des Verstandes mit Website-Ops. Das letzte Mal, als ich ipipgosGeotargetingFunktion, rufen Sie speziell die IP des Shanghai-Server-Raum, um das lokale Forum zu fangen, ist die Erfolgsquote direkt verdoppelt. Ihre technischen Mitarbeiter auch einen Trick gelehrt: die Timeout-Zeit und Proxy-Switching-Strategie Bindung, langsame Knoten automatisch abgebaut, diese Reihe von Kombinationen nach unten, die Sammlung Effizienz hat mehr als drei Mal erhöht.

