Смена прокси не меняет cookie-файлы паука автоматически. Это может быть полезно для одного продолжающегося сеанса и неожиданно, когда несколько независимых сеансов делят одного паука.

Промежуточное ПО cookie-файлов Scrapy поддерживает отдельные банки, выбираемые по метаданным cookiejar запроса. Дайте этому ключу ту идентичность, которую вы действительно намерены сохранить:

yield scrapy.Request(
    'https://example.com/start',
    meta={'proxy': selected_proxy, 'cookiejar': 'workflow-17'},
)

Конечная точка и ключ банки — независимые решения. Неаутентифицированный публичный обход может взять выбранную HTTP-точку из списка HTTP-прокси там, где этот маршрут разрешён; ключ банки всё равно остаётся у процесса. Следующий запрос, который должен остаться в этом сеансе, нуждается в том же ключе банки; метаданные не прилипают автоматически к каждому новому запросу, который вы создаёте. Передавайте конкретные поля, требуемые процессом, вместо слепого копирования всех метаданных промежуточного ПО.

Использование адреса прокси как ключа банки — лишь одна из политик

Этот короткий путь группирует состояние по конечной точке. Он не обязательно группирует его по человеку, учётной записи или публичному выходу. Одна точка провайдера может менять выходы, и несколько учётных записей могут использовать одну и ту же точку.

Для авторизованного процесса, которому нужно стабильное состояние, записывайте отдельно идентификатор учётной записи/сеанса, идентификатор банки и выбранный маршрут. Если вы решили сменить маршрут на полпути, решите также, что должно произойти с сеансом приложения.

Отдельные банки предотвращают случайный обмен cookie-файлами между заданными вами группами. Они не обещают, что получатель не сможет связать два запроса через учётную запись или другие данные приложения.

Если после смены IP-адресов сохраняется неверная страница, проверьте, какая банка отправила запрос, прежде чем удалять все cookie-файлы или заменять весь пул прокси. Сохранённое состояние вполне может объяснить эту страницу.

Похожие статьи