CapSolver リニューアル

Puppeteerでクッキーを保存および読み込む方法:セッションの永続性のための

回答

Puppeteerでは、認証後にpage.cookies()を使用してクッキーを保存し、後でpage.setCookie()を使用して復元できます。これにより、ブラウザの実行間でのセッションの永続化が可能となり、繰り返しのログインを避けて、自動化やスクレイピングのワークフローで認証状態を維持できます。

詳細な説明

クッキーは、ウェブサイトがセッションの識別、ユーザーの好み、認証状態を維持するために保存する小さなデータです。ユーザーがログインすると、サーバーはセッションクッキーを発行し、その後のHTTPリクエストに添付されます。ヘッドレスブラウザの自動化では、これらのクッキーはブラウザインスタンス間で自動的に永続化されません。明示的に保存する必要があります。

Puppeteerはデフォルトで新規のブラウザコンテキストを起動するため、すべてのセッションは認証データなしで開始されます。この制限を克服するには、開発者はPuppeteerを通じて公開されるDevTools APIからログインセッションのクッキーを抽出します。これらのクッキーは、外部(例: JSONファイル)にシリアライズして保存できます。新しい実行時に、保護されたページにアクセスする前に保存されたクッキーデータを再挿入することで、クッキーが有効な限り認証セッションを復元できます。

この技術は、ログインの継続性を維持する必要があるウェブスクレイピング、自動テスト、ボットワークフローで広く使用されています。ただし、クッキーは期限切れになる、サーバーサイドのローテーションによって無効になる、またはHttpOnlyやSameSiteなどの特定のドメインやセキュリティ属性に紐付けられる可能性があるため、復元時にこれらを尊重する必要があります。

解決策 / 方法

  • ログイン後にクッキーを抽出する: 認証が完了したらawait page.cookies()を使用し、その結果をJSONとして保存して、後のセッションで再利用します。
  • アクセス前にクッキーを復元する: 保存されたクッキーデータを読み込み、await page.setCookie(...cookies)を使用して保護されたページにアクセスする前に適用することで、セッション状態を維持します。
  • セッションが切れたら自動CAPTCHA処理を使用する: 一部のウェブサイトでは、reCAPTCHAやCloudflareの保護などのチャレンジによってセッションが無効になることがあります。このような場合、CapSolverなどの自動CAPTCHA解決サービスを使用して、ログインまたはセッションの更新中に検証ステップを自動的に解決することで、アクセスフローを復元できます。

最適な実践方法 / チップ

  • クッキーを復元する前に、正しいドメインにマッチしていることを確認してください。
  • 異なるウェブサイト間でクッキーを混ぜないでください。認証の衝突を防ぐためです。
  • 長期間のセッションが必要な場合は、永続的なブラウザコンテキストを優先してください。
  • クッキーが期限切れになった場合は、再認証または必要な場合に自動検証フローをトリガーして、スムーズに対処してください。

👉 関連:

CapSolverに登録する際、コードFAQを使用して、追加の5%のボーナスをチャージに受け取ってください。 FAQボーナスコード

CapSolver FAQ — capsolver.com

Related Questions