Proxys pro Anfrage mit Scrapys HTTP-Proxy-Middleware
Verwenden Sie Scrapy-Anfragemetadaten und die Proxy-Middleware, bevor Sie eine alte benutzerdefinierte Authentifizierungs-Middleware in einen Crawler kopieren.
Scrapys HTTP-Proxy-Middleware liest einen Proxy aus den Anfragemetadaten:
yield scrapy.Request(
'https://example.com/',
callback=self.parse,
meta={'proxy': 'http://203.0.113.10:8080'},
)
Ersetzen Sie den Dokumentationsendpunkt und lassen Sie die Middleware aktiviert. Die HTTP-Proxy-Liste bietet öffentliche Kandidaten für diese Anfrage-URL. Damit wird die Route der Anfrage gewählt; ein Proxy-Pool benötigt eine separate Auswahllogik.
Die Authentifizierung folgt dem gewählten Endpunkt
Die integrierte Middleware verarbeitet Zugangsdaten, die über ihre unterstützte Proxy-URL und den zugehörigen Authorization-Header bereitgestellt werden. Escapen Sie reservierte URL-Zeichen und vermeiden Sie das Protokollieren dieser URL.
Eine separate Middleware sollte nach einem Endpunktwechsel keinen Basic-Header für den vorherigen Proxy behalten. Lassen Sie eine Ebene die Route und ihre Zugangsdaten gemeinsam verwalten.
Auswahlreihenfolge und Standardwerte
Wenn eine benutzerdefinierte Downloader-Middleware den Proxy wählt, führen Sie sie aus, bevor die integrierte Proxy-Middleware die Anfrage verarbeitet. Prüfen Sie Reihenfolge und API der installierten Version; veraltete scrapy.contrib-Importe gehören zu älteren Versionen.
Die Prozessumgebung kann auch schemaabhängige Standardwerte liefern. Für eine bewusst direkte Anfrage verwenden Sie das dokumentierte besondere Verhalten der proxy-Metadaten: Ein fehlender Schlüssel bedeutet nicht zwangsläufig direkten Zugriff.
Prüfen Sie das tatsächliche Ergebnis. Ein 407 betrifft die Proxy-Authentifizierung, während eine Ratenbegrenzung oder Zugriffsverweigerung der Website erst kommen kann, nachdem die Route korrekt funktioniert hat.