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 がなければ、渡した一覧が順番に切り替わります。これは設定済みのエンドポイントを選ぶだけであり、1 つの URL の背後で出口を切り替える上流サービスは依然として自らの出口挙動を制御します。
クローラーが管理するセッションでは、クローラーのセッションプールと Cookie の永続化の仕組みを使ってください。maxConcurrency を 1 に下げることは、どのリクエストが同じセッションに属するかを決める代わりにはなりません。
セッションを引退させると新しい身元の境界ができます。ログインや複数ステップの操作の途中で 1 つのフィールドだけを切り替えるのではなく、経路、Cookie、作業負荷の状態を一貫させてください。
メジャーバージョンが重要です。Crawlee の v4 移行ドキュメントは newUrl から sessionId 引数を削除し、プロキシの組み合わせを Session の所有に移します。上の例は意図的に v3 のインターフェースを使っています。そのライフサイクルを適合させずに引数を別のメジャーバージョンへコピーしないでください。