Cara mengatur proxy dengan autentikasi di Puppeteer (Node.js)

Diperbarui:

Puppeteer mengontrol Chrome dan Chromium melalui DevTools Protocol (CDP), menyediakan API bawaan await page.authenticate({ username, password }) untuk menangani tantangan autentikasi HTTP 407. Memadukan opsi peluncuran --proxy-server=http://ip:port dengan page.authenticate() memungkinkan scraper Node.js Anda berjalan lancar melalui proxy statis VinaProxy tanpa ekstensi browser apa pun.

Puppeteer · HTTP Proxy Format
--proxy-server=http://ip:port + page.authenticate({ username, password })
IPv4 private (datacenter)
🇺🇸 United States
Tersedia
Mulai
₫20.000 / IP / bulan
≈ US$0,74 · ditagih dalam VND
Harga grosir volume
  • 1 IP₫40.000
  • 5+ IP₫35.000
  • 10+ IP₫25.000
  • 20+ IP₫25.000
  • 50+ IP₫25.000
  • 100+ IP₫25.000
  • 200+ IP₫25.000
  • 500+ IP₫25.000
  • 1000+ IP₫22.000
  • 2000+ IP₫20.000
Beli United States
IPv4 private (datacenter)
🇸🇬 Singapore
Tersedia
Mulai
₫20.000 / IP / bulan
≈ US$0,74 · ditagih dalam VND
Harga grosir volume
  • 1 IP₫40.000
  • 5+ IP₫35.000
  • 10+ IP₫25.000
  • 20+ IP₫25.000
  • 50+ IP₫25.000
  • 100+ IP₫25.000
  • 200+ IP₫25.000
  • 500+ IP₫25.000
  • 1000+ IP₫22.000
  • 2000+ IP₫20.000
Beli Singapore

Konfigurasi proxy dua tahap di Puppeteer

Jangan pernah menyertakan user:pass@ di dalam argumen peluncuran --proxy-server. Sebagai gantinya, masukkan host dan port saat inisialisasi browser, lalu otentikasi pada instance Page:

LangkahKode PuppeteerFungsi dan Alasan Teknis
1. Luncurkan Chromiumpuppeteer.launch({ args: ['--proxy-server=http://ip:port'] })Mengarahkan koneksi soket jaringan Chromium ke proxy VinaProxy Anda
2. Otentikasi Halamanawait page.authenticate({ username, password })Menyediakan kredensial via CDP untuk menjawab tantangan HTTP 407
3. Buka Halaman Targetawait page.goto(url, { waitUntil: 'domcontentloaded' })Memuat URL target melalui terowongan proxy aman yang telah terverifikasi

Rotasi banyak proxy lintas tab dengan paket proxy-chain

  • Perhatikan bahwa page.authenticate() berlaku secara spesifik per tab Page—panggil metode ini di setiap tab baru yang dibuat dari browser.newPage()
  • Untuk memakai proxy berbeda pada sesi penyamaran di dalam satu proses Chromium, bungkus URL http://user:pass@ip:port dengan paket npm proxy-chain (anonymizeProxy()) dan teruskan ke browser.createBrowserContext({ proxyServer })
  • Kompatibel penuh dengan puppeteer-extra dan plugin anti-deteksi puppeteer-extra-plugin-stealth

Langkah demi langkah

  1. 1

    Kirimkan --proxy-server=http://ip:port ke puppeteer.launch()

    Buka peramban dengan const browser = await puppeteer.launch({ args: ['--proxy-server=http://ip:port'] });.

  2. 2

    Panggil await page.authenticate() di tab baru

    Buka tab dengan const page = await browser.newPage(); dan jalankan await page.authenticate({ username: 'USER', password: 'PASS' });.

  3. 3

    Periksa alamat IP keluar

    Jalankan await page.goto('https://vinaproxy.com/api/my-ip'); dan amati JSON yang dikembalikan.

  4. 4

    Tutup proses browser dengan bersih

    Setelah operasi selesai, panggil await browser.close(); untuk membebaskan memori sistem.

Pertanyaan umum

Mengapa Puppeteer memunculkan pesan kesalahan ERR_NO_SUPPORTED_PROXIES?

Kesalahan tersebut terjadi jika Anda mencantumkan kredensial di parameter awal: --proxy-server=http://user:pass@ip:port. Gunakan hanya --proxy-server=http://ip:port dan kirimkan data login melalui await page.authenticate({ username, password }).

Mengapa tab kedua dari browser.newPage() mengalami kendala HTTP 407?

page.authenticate() hanya berlaku untuk tab bersangkutan. Jalankan await secondPage.authenticate({ username, password }) sebelum melakukan navigasi pada tab baru.

Apakah proxy VinaProxy memiliki batas kuota saat dipakai scraping headless Chrome?

Tidak. Seluruh paket IPv4 Dedicated dan ISP Statis VinaProxy memiliki alokasi bandwidth tanpa batas bulanan.

Perkuat infrastruktur Puppeteer Node.js Anda dengan IP statis dedicated

Proxy IPv4 Dedicated dan ISP Statis tanpa batas kuota di 7 negara strategis dunia.

Beli Proxy Puppeteer

Artikel terkait

Proxy per platform
Proxy untuk Web Scraping: pool IPv4 & ISP khusus tanpa kuota untuk crawler 24/7
Proxy HTTP(S) IPv4 khusus dan ISP statis kecepatan tinggi untuk Python, Playwright, Selenium, dan Scrapy dengan bandwidth bulanan tanpa batas.
Cara setting proxy
Cara mengatur proxy di Playwright (Autentikasi Browser & Per-Context)
Konfigurasi proxy HTTP(S) berotentikasi di Playwright untuk Node.js dan Python. Jalankan banyak IP statis terisolasi di berbagai BrowserContext.
Cara setting proxy
Cara mengatur proxy di Node.js (Axios & Native Fetch)
Konfigurasi proxy HTTP(S) berotentikasi di Node.js dan TypeScript memakai https-proxy-agent untuk Axios dan Undici ProxyAgent untuk native fetch.
Tools gratis
Konverter Format Proxy Massal (100% Aman di Sisi Browser)
Alat pengubah format daftar proxy massal 100% client-side. Konversi antara ip:port:user:pass, user:pass@ip:port, URL http://, URI SOCKS5, array JSON, dan impor FoxyProxy.
Proxy per platform
Proxy untuk SEO & Pelacakan SERP: peringkat kata kunci akurat di 7 negara
Pantau peringkat kata kunci lokal, periksa geo-redirect, dan jalankan audit Screaming Frog dengan proxy IPv4 khusus dan ISP statis tanpa batas kuota.
Proxy per platform
Proxy untuk YouTube: amankan multi-channel Studio dan AdSense pada IP statis khusus
Isolasi channel YouTube Studio dan akun AdSense dengan proxy ISP statis dan IPv4 khusus tanpa batas kuota di AS, Vietnam, Jepang, dan Inggris.
IPV4 · united states
Proxy IPv4 Private US: IP Datacenter Amerika Cepat dan Dedicated
Proxy IPv4 private US untuk scraping, rank tracking, verifikasi iklan, dan riset Amazon. IP statis, satu pengguna per IP, bandwidth tanpa batas.
IPV4 · singapore
Proxy IPv4 Private Singapura: IP SG Cepat dan Dedicated untuk Toko dan Iklan
Proxy IPv4 private Singapura untuk toko Lazada dan Shopee SG, akun iklan regional, dan automasi latensi rendah. Data tanpa batas.