統合 · 中級

Puppeteer とヘッドレス Chrome でのプロキシの使用

ブラウザーの起動時またはサポートされている Puppeteer ブラウザー コンテキストでプロキシを設定し、ナビゲーションの前に認証情報を指定します。各コンテキスト内で割り当てられた出口を確認し、独立したワークフローを別個のセッションに保持します。

2 分で読めます 5つのセクション 確認日 編集チーム Proxy Cyber

プロキシを使用して起動して認証する#

Node.js
import puppeteer from "puppeteer";

const browser = await puppeteer.launch({
  headless: true,
  args: ["--proxy-server=http://res.proxy-cyber.com:9000", "--no-first-run"],
});
const page = await browser.newPage();
await page.authenticate({ username: "USER-cc-us-sid-run1-ttl-30m", password: "PASS" });

await page.goto("https://api.ipify.org", { waitUntil: "domcontentloaded", timeout: 45000 });
console.log(await page.evaluate(() => document.body.innerText));
await browser.close();

割り当てられたゲートウェイがサポートする独立したワークフローごとに、個別のセッション ID を使用します。接続の詳細で、許可されている期間と場所のパラメーターを確認してください。住宅用デバイスは、要求された期間が経過する前に切断される可能性があります。スティッキー セッションは、何日間も同じ IP を保証するものではありません。固定アドレスの場合はスタティック専用品と比較してください。

ブラウザごとに 1 つのプロキシ#

起動レベルの --proxy-server 設定は、ブラウザのデフォルト ルーティングに適用されます。現在の Puppeteer は、page.authenticate() を通じて提供される資格情報を使用して、browser.createBrowserContext() で proxyServer もサポートしています。異なるプロキシ設定には個別のコンテキストを使用し、永続プロファイルには個別のユーザー データ ディレクトリを使用します。各コンテキスト内での終了を確認します。

画像、フォント、メディアをブロックする#

リクエストの傍受
await page.setRequestInterception(true);
page.on("request", (req) => {
  const t = req.resourceType();
  if (["image", "media", "font", "stylesheet"].includes(t)) return req.abort();
  req.continue();
});

一貫性#

  • セット Accept-Language 出口の国へのタイムゾーン: page.setExtraHTTPHeaders({\"Accept-Language\": \"de-DE,de;q=0.9\"}) そして page.emulateTimezone(\"Europe/Berlin\").
  • WebRTC リークを無効にする --force-webrtc-ip-handling-policy=disable_non_proxied_udp 起動引数に。
  • アカウントごとに 1 つのブラウザを維持します。アカウントが復帰デバイスのように見える必要がある場合は、そのユーザー データ ディレクトリを再利用します。

遭遇するであろうエラー#

症状原因修正
net::ERR_TUNNEL_CONNECTION_FAILEDゲートウェイが接続を拒否しました: 資格情報、パラメータ、または終了なしcURL -v で再現してゲートウェイ コードを読み取ります
net::ERR_PROXY_AUTH_UNSUPPORTED / プロンプトナビゲーション後に呼び出されるauthenticate()goto の前に page.authenticate を呼び出す
どのブラウザでも同じ IP同じセッション ID が再利用されるブラウザごとに異なる -sid- を使用するか、省略します。
最初のロードが非常に遅い世帯出口と重いページリソースをブロックします。タイムアウトを 45 秒に増やす

人々が尋ねる質問#

Puppeteer はパスワード付きで SOCKS5 を使用できますか?

Chrome は SOCKS5 認証をサポートしていません。 page.authenticate でポート 9000 の HTTP プロキシを使用するか、サーバー IP をホワイトリストに登録して --proxy-server=socks5://res.proxy-cyber.com:9001 を渡します。

あなたのアカウント

1 つのアカウントでプロキシを管理

1 つのダッシュボードからネットワークを比較し、注文し、残高とサポート リクエストを追跡します。私たちのチームが支払いを確認し、配達後に接続の詳細を提供します。

アカウント作成