Crawlee 3 将代理 URL 与会话 ID 配对
使用 Crawlee 3.14 的 ProxyConfiguration 会话参数实现稳定的路由选择,并留意 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 提供公开候选。使用同一会话 ID 重复调用会返回与其配对的 URL。没有会话 ID 时,传入的列表会轮换。这只是选择一个已配置的端点;在单个 URL 背后轮换出口的上游服务仍然控制着自己的出口行为。
对于由爬虫管理的会话,请使用爬虫的会话池和 Cookie 持久化安排。把 maxConcurrency 降到 1 并不能代替界定哪些请求属于同一会话。
让会话退役会创建新的身份边界。登录或多步操作期间,应保持其路由、Cookie 与工作负载状态一致,而不是只轮换一个字段。
主版本很重要。Crawlee 的 v4 迁移文档从 newUrl 中移除了 sessionId 参数,并把代理配对移入 Session 的所有权。上面的示例有意使用 v3 接口;不要在没有适配该生命周期的情况下把它的参数照搬到另一个主版本。