Crawlee 3 связывает URL прокси с идентификатором сессии
Используйте аргумент сессии ProxyConfiguration в Crawlee 3.14 для стабильного выбора маршрута и учитывайте изменённую модель владения в документации по переходу на v4.
В Crawlee 3.14 ProxyConfiguration может связать идентификатор сессии с выбранным URL прокси:
import { ProxyConfiguration } from 'crawlee';
const proxies = new ProxyConfiguration({
proxyUrls: [
'http://proxy-a.example:8080',
'http://proxy-b.example:8080',
],
});
const first = await proxies.newUrl('checkout-a');
const sameRoute = await proxies.newUrl('checkout-a');
const anotherSession = await proxies.newUrl('checkout-b');
Список HTTP-прокси поставляет публичных кандидатов для proxyUrls. Повторные вызовы с тем же идентификатором сессии возвращают связанный с ним URL. Без идентификатора сессии переданный список переключается по кругу. Это выбирает настроенную конечную точку; вышестоящий сервис, который меняет выходы за одним URL, по-прежнему управляет собственным поведением выхода.
Для сессий, которыми управляет краулер, используйте пул сессий краулера и схему сохранения cookie. Снижение maxConcurrency до единицы не заменяет определение того, какие запросы относятся к одной сессии.
Вывод сессии из эксплуатации создаёт новую границу идентичности. Поддерживайте её маршрут, cookie и состояние рабочей нагрузки согласованными, а не меняйте только одно поле во время входа или многошаговой операции.
Основная версия имеет значение. Документация Crawlee по переходу на v4 удаляет аргумент sessionId из newUrl и переносит связывание прокси во владение Session. Пример выше намеренно использует интерфейс v3; не копируйте его аргумент в другую основную версию, не адаптировав этот жизненный цикл.