
Praktische Erfahrungen mit dem Einbau einer Agentenweste in Scrapy
Crawler Brüder verstehen, nicht mit einem Proxy ist wie ein nacktes Internet, Minuten von der Website blockiert IP. heute nehmen wir Scrapy, um das Messer zu öffnen, sagen, wie man es geben, um eine gute Proxy-Weste tragen. Hier, um ihre eigenen Proxy-Service ipipgo Beispiel verwenden, pro-Test effektiv nicht zu ziehen falsch.
Die drei Achsen der Proxy-Konfiguration von Scrapy
Beginnen wir mit der einfachsten Konfigurationsmethode für Neulinge:
Fügen Sie das Material in settings.py hinzu
DOWNLOADER_MIDDLEWARES = {
scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware': 543,
}
Einfügen des Proxys in die spezifische Anfrage
yield scrapy.Request(
url, meta={'proxy': 'proxy')
meta={'proxy': 'http://username:password@proxy.ipipgo.com:8000'}
)
diese Art vonHarte KodierungsmethodeEr eignet sich für vorübergehende Tests, wenn Sie ihn jedoch für längere Zeit verwenden, müssen Sie einen intelligenten Weg wählen. In der Praxis habe ich festgestellt, dass ein toter Proxy, der direkt in die Einstellungen geschrieben wird, leicht von Anti-Crawling-Mechanismen erfasst werden kann.
Dynamische Proxy-Pools sind der König
Fortgeschrittene Spieler verwenden rotierende Proxys, und hier empfehlen wir die Verwendung der API von ipipgo, um sie dynamisch zu erhalten:
zufällig importieren
class ProxyMiddleware.
def process_request(self, request, spider): proxy_list = get_ipipgo_proxies() ruft ipipgo API-Schnittstelle auf.
proxy_list = get_ipipgo_proxies() ruft die API-Schnittstelle von ipipgo auf
proxy = random.choice(proxy_list)
request.meta['proxy'] = f "http://{proxy['ip']}:{proxy['port']}"
request.headers['Proxy-Authorisation'] = basic_auth_header(
proxy['user'], proxy['password']
)
Seien Sie vorsichtig im Umgang mit ihr.Automatische Umschaltung bei Proxy-AusfallIch schlage vor, einen Wiederholungsmechanismus in die Ausnahmebehandlung einzufügen. Die API von ipipgo hat eine gute Antwortzeit, und es dauert Millisekunden, um einen neuen Proxy zu erhalten.
Der Durchgang in der Konfigurationsdatei
Ältere Treiber erledigen ihre Arbeit in settings.py und empfehlen Konfigurationspakete:
| Konfigurationsobjekt | empfohlener Wert |
|---|---|
| GLEICHZEITIGE_ANFRAGEN | Angepasst für Proxy-Pakete (30-50 empfohlen für dynamische Proxys) |
| DOWNLOAD_TIMEOUT | Die Einstellung von 15-30 Sekunden ist sicherer. |
| RETRY_TIMES | 3 Wiederholungsversuche vorschlagen, um sicher zu sein |
Aufzeichnung der tatsächlichen Fallstricke
Ich bin auf eine äußerst bedauerliche Situation gestoßen: Der Agent funktioniert offensichtlich, aber der Crawler kann einfach keine Verbindung herstellen. Später habe ich herausgefunden, dass es anSSL-AuthentifizierungVerdammt, das Hinzufügen dieses Parameters zur Anfrage löst das Problem sofort:
request.meta['download_timeout'] = 30
request.meta['proxy'] = 'https://...' Beachten Sie den Protokolltyp
request.meta['dont_redirect'] = True Verhindert Umleitungen, wenn der Proxy wegfällt
Häufig gestellte Fragen Erste-Hilfe-Kasten
F: Was sollte ich tun, wenn der Agent plötzlich ausfällt?
A: Fügen Sie die Ausnahmeerfassung in der Middleware hinzu, um automatisch neue Agenten von ipipgo zu beziehen. Es wird empfohlen, die Gesundheitsprüfung des Proxys zu aktivieren und den Pool rechtzeitig zu entfernen, wenn er kaputt ist.
F: Krabbeln wie eine Schildkröte?
A: Überprüfen Sie den Proxy-Paket-Typ. Dynamic Residence (Enterprise Edition) ist 30% schneller als Standard Edition, wenn Sie genug Budget haben, um direkt zu Static Residence zu gehen, wird die Geschwindigkeit fliegen.
F: Stoßen Sie immer auf CAPTCHA?
A: Ändern Sie, um ipipgo's TK spezielle Linie Proxy verwenden, ist diese Art von Wohn-IP weniger wahrscheinlich, um die Überprüfung auslösen. Der reale Test nach der Verwendung dieser Standleitung Verifizierungscode erschien Rate fiel 70%.
Wie man ein ipipgo-Paket auswählt
Persönliche Empfehlung Paketvergleich:
- Small-Scale-Crawler: dynamische Wohn (Standard) 7,67 Yuan / GB, sparen Sie genug, um die Nutzung der
- Enterprise-Level-Projekte: direkt auf die statische Wohn 35 Yuan / IP, stabil und nicht geworfen!
- Besonderer Bedarf: grenzüberschreitende Sonderleitung zur Bewältigung geografischer Beschränkungen des Standorts, wer nutzt wer weiß
Schließlich sagte ein hohles: Proxy-Konfiguration ist nicht eine einmalige Sache, nach der Ziel-Website Anti-Climbing-Strategie flexible Anpassung. Brüder mit ipipgo daran erinnern, mit ihren benutzerdefinierten Diensten zu leben, kann der technische Kundendienst helfen, die Referenz einzustellen, als ihre eigenen blinden Wurf viel stärker.

