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.
--proxy-server=http://ip:port + page.authenticate({ username, password })- 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
- 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
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:
| Langkah | Kode Puppeteer | Fungsi dan Alasan Teknis |
|---|---|---|
| 1. Luncurkan Chromium | puppeteer.launch({ args: ['--proxy-server=http://ip:port'] }) | Mengarahkan koneksi soket jaringan Chromium ke proxy VinaProxy Anda |
| 2. Otentikasi Halaman | await page.authenticate({ username, password }) | Menyediakan kredensial via CDP untuk menjawab tantangan HTTP 407 |
| 3. Buka Halaman Target | await 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 tabPage—panggil metode ini di setiap tab baru yang dibuat daribrowser.newPage() - Untuk memakai proxy berbeda pada sesi penyamaran di dalam satu proses Chromium, bungkus URL
http://user:pass@ip:portdengan paket npmproxy-chain(anonymizeProxy()) dan teruskan kebrowser.createBrowserContext({ proxyServer }) - Kompatibel penuh dengan
puppeteer-extradan plugin anti-deteksipuppeteer-extra-plugin-stealth
Langkah demi langkah
- 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
Panggil await page.authenticate() di tab baru
Buka tab dengan
const page = await browser.newPage();dan jalankanawait page.authenticate({ username: 'USER', password: 'PASS' });. - 3
Periksa alamat IP keluar
Jalankan
await page.goto('https://vinaproxy.com/api/my-ip');dan amati JSON yang dikembalikan. - 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