Ein Scrapy-Cookie-Jar gehört zu einer Session, nicht automatisch zu einem Proxy
Wählen Sie eine ausdrückliche Cookie-Jar-Identität, wenn mehrere Proxy-Workflows einen Spider teilen, und tragen Sie diese Identität in Folgeanfragen weiter.
Der Wechsel des Proxys wechselt nicht automatisch die Cookies des Spiders. Das kann für eine fortlaufende Session nützlich und überraschend sein, wenn mehrere unabhängige Sessions denselben Spider teilen.
Die Cookie-Middleware von Scrapy unterstützt getrennte Jars, die über die cookiejar-Metadaten der Anfrage ausgewählt werden. Geben Sie diesem Schlüssel die Identität, die Sie tatsächlich erhalten wollen:
yield scrapy.Request(
'https://example.com/start',
meta={'proxy': selected_proxy, 'cookiejar': 'workflow-17'},
)
Endpunkt und Jar-Schlüssel sind unabhängige Entscheidungen. Ein nicht authentifizierter öffentlicher Crawl kann seinen gewählten HTTP-Endpunkt aus der HTTP-Proxy-Liste nehmen, wo diese Route erlaubt ist; der Workflow besitzt weiterhin den Jar-Schlüssel. Eine Folgeanfrage, die in dieser Session bleiben soll, braucht denselben Jar-Schlüssel; die Metadaten bleiben nicht automatisch an jeder neuen Anfrage haften, die Sie erzeugen. Geben Sie die vom Workflow benötigten Felder gezielt weiter, statt blind alle Middleware-Metadaten zu kopieren.
Die Proxy-Adresse als Jar-Schlüssel zu verwenden, ist nur eine Richtlinie
Diese Abkürzung gruppiert Zustand nach Endpunkt. Sie gruppiert ihn nicht zwangsläufig nach Person, Konto oder öffentlichem Ausgang. Ein Anbieter-Endpunkt kann Ausgänge rotieren, und mehrere Konten können denselben Endpunkt nutzen.
Für einen autorisierten Workflow, der stabilen Zustand braucht, halten Sie Konto-/Session-Kennung, Jar-Kennung und gewählte Route getrennt fest. Wenn Sie die Route unterwegs ändern wollen, entscheiden Sie auch, was mit der Anwendungssession geschehen soll.
Getrennte Jars verhindern versehentliches Cookie-Teilen zwischen den von Ihnen definierten Gruppen. Sie versprechen nicht, dass ein Ziel zwei Anfragen nicht über ein Konto oder andere Anwendungsdaten in Verbindung bringen kann.
Wenn die falsche Seite nach dem Wechsel der IPs bleibt, prüfen Sie, welcher Jar die Anfrage gesendet hat, bevor Sie alle Cookies löschen oder den gesamten Proxy-Pool ersetzen. Der zurückgehaltene Zustand kann die Seite durchaus erklären.