Scrapy-Proxy-Parallelität über mehrere Domains
Nutzen Sie die globale Parallelitätsgrenze des Downloaders, wenn mehrere Zieldomains dasselbe Proxy-Kontingent verbrauchen, und rechnen Sie weitere Crawler mit demselben Konto ein.
Wenn jedes Ziel ein einziges Proxy-Konto verwendet, kann das Kontingent für gleichzeitige Anfragen dieses Kontos über alle diese Ziele hinweg aufgebraucht werden. Ein Limit pro Domain allein drückt dieses gemeinsame Budget nicht aus.
Für ein hypothetisches Konto, das höchstens 20 gleichzeitige Anfragen zulässt, halten Sie etwas Reserve frei und setzen Sie die globale Downloader-Grenze des Crawlers:
CONCURRENT_REQUESTS = 16
Dies ist eine beispielhafte Aufteilung, kein für jeden Anbieter empfohlener Wert. Scrapy definiert CONCURRENT_REQUESTS als die maximale Anzahl gleichzeitiger Anfragen des Downloaders. Steuerungen pro Domain können die Parallelität weiter senken; sie ersetzen die globale Obergrenze nicht.
Beziehen Sie weitere Crawler in die Rechnung ein. Zwei unabhängige Crawler mit je 16 erlaubten Anfragen können gemeinsam ein geteiltes Kontingent von 20 überschreiten. Teilen Sie das Budget bewusst auf oder erzwingen Sie ein gemeinsames Limit dort, wo diese Clients zusammentreffen.
Klären Sie außerdem, was der Anbieter zählt. HTTP-Anfragen, offene TCP-Verbindungen, aktive Tunnel und Anfragen pro Sekunde sind unterschiedliche Größen. Dauerhafte Verbindungen und Multiplexing können ihre Zahlen auseinanderlaufen lassen. Eine Einstellung für Anforderungsparallelität ist daher kein vollständiger Verbindungs- oder Ratenbegrenzer.
Behalten Sie das Tempo der Zielseite als eigene Einschränkung bei. Eine geringere Parallelität oder eine Download-Verzögerung kann für ein einzelnes Ziel weiterhin angemessen sein, selbst wenn das Proxy-Konto ungenutzte Kapazität hat.