Tanpa KYC — tanpa ID, tanpa selfie, tanpa dokumen. Bayar dengan crypto: BTC, USDT, USDC, ETH, SOL, LTC
Bahasa: Bahasa Indonesia
Mulai sekarang

Docs · Puppeteer · Chrome for Testing

Autentikasi proxy Puppeteer dengan IP proxy residensial dan proxy seluler 4G

Chrome mengambil alamat proxy dari flag peluncuran dan kredensial dari page.authenticate(). Gunakan satu konteks browser per sesi agar kredensial tidak bocor antar pekerjaan.

Terakhir diperbarui: · 4 baca dalam menit

Jawaban cepat

Bagaimana cara menggunakan proxy yang diautentikasi di Puppeteer?

Luncurkan Chrome dengan --proxy-server=http://gw.crawlrelay.com:7777, lalu panggil page.authenticate({ username, password }) sebelum goto pertama. Chrome mengabaikan kredensial yang ditulis di dalam flag. CrawlRelay proxy residensial membaca negara dan sesi lengket dari username, sehingga setiap halaman atau konteks bisa memiliki exit-nya sendiri. Biaya traffic US$0,50/GB mulai dari 50 GB. Dibayar dengan crypto, tanpa KYC.

Pengaturan Puppeteer secara singkat

Alamat proxy--proxy-server=http://gw.crawlrelay.com:7777 di args, atau proxyServer pada konteks browser
Kredensialawait page.authenticate({ username, password }) sebelum navigasi
Sesi terpisahbrowser.createBrowserContext({ proxyServer }): satu konteks per sesi
SOCKS5Tidak dengan autentikasi di Chrome: gunakan port HTTP
Menghemat trafficpage.setRequestInterception(true) dan batalkan gambar, font, dan media

Bagaimana cara saya mengatur satu proxy yang diautentikasi?

Ini pola minimal. Blok try … finally menutup Chrome meskipun navigasi gagal, penting di server di mana browser yatim menumpuk.

Node.js (modul ES): satu browser, satu exit
import puppeteer from "puppeteer";

const browser = await puppeteer.launch({
  args: ["--proxy-server=http://gw.crawlrelay.com:7777"],
});
try {
  const page = await browser.newPage();
  await page.authenticate({ username: "USERNAME-country-us", password: "PASSWORD" });
  await page.setRequestInterception(true);
  page.on("request", (req) =>
    ["image", "font", "media"].includes(req.resourceType()) ? req.abort() : req.continue()
  );
  const res = await page.goto("https://example.com/", { waitUntil: "domcontentloaded", timeout: 60000 });
  console.log(res.status(), await page.title());
} finally {
  await browser.close();
}

Bagaimana cara menjalankan beberapa sesi atau negara dalam satu browser?

Buat satu konteks browser per sesi. Sebuah konteks adalah profil terisolasi dengan cookie, cache, dan status jaringan sendiri, jadi kredensial yang Anda berikan pada satu konteks tidak bocor ke yang lain. Beri setiap konteks username dengan negara atau ID sesi sendiri.

Node.js: satu konteks per sesi lengket
import puppeteer from "puppeteer";
import { randomUUID } from "node:crypto";

const GATEWAY = "http://gw.crawlrelay.com:7777";
const browser = await puppeteer.launch();

async function visit(country, url) {
  const session = randomUUID().replaceAll("-", "").slice(0, 10);
  const context = await browser.createBrowserContext({ proxyServer: GATEWAY });
  try {
    const page = await context.newPage();
    await page.authenticate({
      username: `USERNAME-country-${country}-session-${session}-ttl-20`,
      password: "PASSWORD",
    });
    await page.goto(url, { waitUntil: "domcontentloaded", timeout: 60000 });
    return { country, session, ip: await page.evaluate(() => document.body.innerText.trim()) };
  } finally {
    await context.close();
  }
}

try {
  const results = await Promise.all([
    visit("us", "https://api.ipify.org"),
    visit("gb", "https://api.ipify.org"),
  ]);
  console.table(results);
} finally {
  await browser.close();
}

Kenapa Puppeteer menunjukkan 407 atau ERR_TUNNEL_CONNECTION_FAILED?

Karena Chrome tidak mengirim kredensial, atau salah. Periksa tiga hal:

  1. page.authenticate() dijalankan sebelum goto pertama pada halaman itu.
  2. Flag --proxy-server atau proxyServer hanya berisi skema, host, dan port, tanpa bagian user:pass@.
  3. Username tidak ada salah ketik pada bagian targetnya: coba dengan curl dulu, seperti pada halaman 407.

Jika curl berhasil dengan username dan password yang sama tapi Puppeteer gagal, baca ERR_TUNNEL_CONNECTION_FAILED.

Berapa biaya traffic untuk sebuah halaman Puppeteer?

Semua yang diunduh Chrome dikenai biaya: HTML, skrip, gaya, gambar, font, dan panggilan API yang dilakukan halaman. HTTP Archive Web Almanac 2025 mengukur rata-rata bobot halaman 2.164 KB di mobile dan 2.412 KB di desktop. Memblokir gambar, font, dan media dengan intersepsi permintaan biasanya menurunkannya ke beberapa ratus kilobyte, dan mengembalikan respons cache untuk skrip berulang semakin menghemat. Gunakan rotating proxy seluler 4G hanya untuk halaman yang membutuhkannya: traffic seluler 4G biaya US$1,50/GB mulai 5 GB, proxy residensial US$0,50/GB mulai 50 GB.

Puppeteer dan proxy: pertanyaan

Bisakah saya mengisi username dan password dalam --proxy-server?

Tidak. Chrome mengabaikan kredensial dalam flag --proxy-server, dan permintaan HTTPS pertama kemudian gagal dengan 407 tersembunyi di balik ERR_TUNNEL_CONNECTION_FAILED. Masukkan hanya http://host:port di flag dan kirim kredensial dengan page.authenticate() di setiap halaman baru.

Bagaimana cara saya merotasi IP antar halaman di Puppeteer?

Buka setiap halaman di konteks browser baru, atau beri setiap halaman username tanpa ID sesi. Konteks baru membuka koneksi baru, dan setiap koneksi biasanya mendapat exit proxy residensial berbeda. Dalam satu halaman, Chrome menggunakan ulang koneksi, jadi permintaan ke situs yang sama sering berbagi exit sampai koneksi ditutup.

Apakah page.authenticate() bekerja dengan intersepsi permintaan?

Ya. Puppeteer menangani tantangan autentikasi proxy sendiri, dan handler intersepsi Anda hanya perlu memanggil continue() atau abort() pada setiap permintaan. Atur authenticate() terlebih dahulu, lalu aktifkan intersepsi, seperti contoh pertama.

Haruskah saya menggunakan plugin stealth puppeteer-extra dengan proxy?

Kami tidak mendokumentasikan atau mendukung alat untuk menyembunyikan automasi atau mengalahkan deteksi bot. Tujuannya untuk melewati penyaringan pengunjung otomatis oleh situs, yang tidak diizinkan oleh Acceptable Use Policy kami. Render halaman publik secara sopan dan gunakan API resmi bila tersedia.

Chrome mana yang digunakan Puppeteer dengan proxy?

Versi Puppeteer terbaru mengunduh build Chrome for Testing yang cocok dan menggunakannya secara default. Flag proxy dan page.authenticate() bekerja sama seperti di Chrome biasa. Jika Anda mengarahkan Puppeteer ke Chrome Anda sendiri dengan executablePath, pastikan browser itu selalu diperbarui.

Jalankan Puppeteer melalui IP proxy residensial

US$5,94 untuk 10 GB, US$0,50/GB dari 50 GB.

Dari US$0,50/GB · tanpa KYC

Mulai sekarang