In this Article
Puppeteer menjalankan Chrome headless untuk scraping dan automation: ia merender JavaScript, menangani login dan klik, serta mendukung sebagian besar stack scraping Node.js pada 2026. Namun, jika Anda mengarahkannya ke target nyata dari satu IP datacenter, Anda akan cepat diblokir atau terkena rate limit. Solusinya adalah merutekan Puppeteer melalui proxy, idealnya residential, agar setiap sesi tampak seperti pengguna biasa. Kendala khusus Puppeteer: Chrome tidak menerima username dan password dalam URL proxy, sehingga authentication memerlukan satu langkah tambahan. Panduan ini menunjukkan dengan tepat cara menyiapkan proxy di Puppeteer (dengan kode yang berfungsi), lalu memberi peringkat 8 proxy terbaik untuk Puppeteer pada 2026 berdasarkan harga, tingkat keberhasilan, dan integrasi.
Saya Andrii Byzov, Fractional CMO AI-Native yang menjalankan pipeline data berbasis Puppeteer setiap hari. Di bawah ini: pengaturan salin-tempel termasuk langkah authentication yang sering membuat orang tersandung, pola rotation yang dapat diskalakan, dan penyedia yang layak untuk anggaran Anda, dengan DataImpulse residential seharga $1/GB sebagai patokan nilai.
Fakta Utama
- Atur proxy dengan flag peluncuran
--proxy-server. Masukkan ke dalamargspadapuppeteer.launch(); ini berlaku untuk setiap halaman di browser tersebut. - Chrome mengabaikan kredensial dalam URL proxy. Untuk proxy terautentikasi, Anda harus memanggil
page.authenticate({ username, password })sebelumpage.goto(), atau membungkus proxy dengan libraryproxy-chain, yang menangani auth untuk Anda. - Auth SOCKS5 tidak didukung. Chromium (dan karenanya Puppeteer) tidak menjalankan username/password melalui SOCKS5. Gunakan endpoint HTTP/HTTPS untuk proxy residential terautentikasi.
- Lakukan rotation dengan meluncurkan ulang atau memakai proxy-chain. Flag
--proxy-serverbersifat tetap per browser, jadi rotation berarti browser baru per proxy, atau wrapperproxy-chainlokal yang diarahkan ke upstream rotating. Gateway residential rotating otomatis memberi IP baru per koneksi. - DataImpulse adalah pilihan bernilai terbaik: residential $1/GB pay-as-you-go, datacenter $0,50/GB, mobile $2/GB, 90M+ IP di 195 negara, HTTP/HTTPS/SOCKS5, targeting negara/kota/ASN, dengan harga per GB yang jauh lebih rendah daripada enterprise.
Cara Menyiapkan Proxy di Puppeteer
Ada dua pola andal: flag bawaan plus page.authenticate(), atau library proxy-chain untuk auth dan rotation yang lebih rapi.
1. Flag --proxy-server + page.authenticate()
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch({
args: ['--proxy-server=http://gw.dataimpulse.com:823'], // DataImpulse gateway
});
const page = await browser.newPage();
// Chrome won't take credentials in the URL — authenticate separately,
// BEFORE the first navigation:
await page.authenticate({
username: 'YOUR_LOGIN__cr.us', // __cr.us = target the US
password: 'YOUR_PASSWORD',
});
await page.goto('https://httpbin.org/ip'); // verify the egress IP
console.log(await page.evaluate(() => document.body.innerText));
await browser.close();
})();
2. Library proxy-chain (auth + rotation lebih rapi)
proxy-chain milik Apify menjalankan proxy lokal yang menyimpan kredensial Anda dan meneruskannya ke gateway upstream, sehingga Anda tidak perlu memakai page.authenticate() dan dapat menukar upstream untuk melakukan rotation:
const puppeteer = require('puppeteer');
const proxyChain = require('proxy-chain');
(async () => {
const upstream = 'http://YOUR_LOGIN__cr.us:[email protected]:823';
const newProxyUrl = await proxyChain.anonymizeProxy(upstream); // local, auth handled
const browser = await puppeteer.launch({ args: [`--proxy-server=${newProxyUrl}`] });
const page = await browser.newPage();
await page.goto('https://httpbin.org/ip');
console.log(await page.evaluate(() => document.body.innerText));
await browser.close();
await proxyChain.closeAnonymizedProxy(newProxyUrl, true);
})();
3. SOCKS5 dan catatan tentang rotation
Puppeteer dapat menggunakan SOCKS5 (--proxy-server=socks5://gw.dataimpulse.com:824), tetapi Chromium tidak mendukung authentication username/password melalui SOCKS5. Karena itu, gunakan SOCKS5 untuk akses yang IP-nya masuk whitelist dan pertahankan proxy residential terautentikasi pada endpoint HTTP/HTTPS. Karena --proxy-server tetap selama browser aktif, lakukan rotation dengan meluncurkan browser baru per proxy atau arahkan proxy-chain ke gateway rotating, yang memberikan IP baru pada setiap koneksi baru. DataImpulse menyediakan tutorial proxy Puppeteer dengan pengaturan terkini.
Perbandingan Singkat Proxy Terbaik untuk Puppeteer
| Penyedia | Terbaik untuk Puppeteer | Harga residential | Protokol | Keunggulan |
|---|---|---|---|---|
| DataImpulse | Nilai terbaik, pipeline internal | $1/GB PAYG | HTTP/HTTPS/SOCKS5 | Pool 90M+, tutorial Puppeteer resmi, tidak pernah kedaluwarsa |
| Bright Data | Enterprise + Scraping Browser | promo ~$2,50/GB; reguler $5 | HTTP/HTTPS/SOCKS5 | “Scraping Browser” hosted terhubung melalui CDP, Web Unlocker |
| Oxylabs | SLA enterprise | mulai dari $6/GB | HTTP/HTTPS/SOCKS5 | Pool 175M+, Web Scraper API, panduan resmi |
| Decodo | Pasar menengah, grid geo lengkap | starter $3,75/GB; ~$2 pada 1TB+ | HTTP/HTTPS/SOCKS5 | Pool 115M+, sticky hingga 24 jam |
| IPRoyal | Sticky session panjang | mulai dari $7,35/GB | HTTP/HTTPS/SOCKS5 | Sticky hingga 7 hari; opsi awal PAYG murah |
| SOAX | Perpaduan residential + mobile | Starter $3,60/GB | HTTP/HTTPS/SOCKS5 | 155M+ residential, 33M+ mobile |
| Webshare | Hemat / self-serve | res mulai $3,50/bln; DC $2,99/bln | HTTP/SOCKS5 | Tier gratis, datacenter termurah |
| NetNut | Stabilitas ISP-residential | mulai dari $3,53/GB | HTTP/HTTPS | IP statis ISP konsumen, rotation cepat |

Pilihan secara singkat
DataImpulse adalah patokan nilai untuk scraping Puppeteer: residential $1/GB pay-as-you-go (datacenter $0,50/GB, mobile $2/GB), 90M+ IP di 195 negara, HTTP/HTTPS dan SOCKS5, dengan targeting negara/kota/ASN melalui username serta tutorial Puppeteer resmi. Traffic tidak pernah kedaluwarsa, sehingga uji coba tidak menghabiskan subscription. Dukungan diberikan manusia 24/7; tingkat keberhasilan yang dipublikasikan adalah 99,51%; G2 bernilai 4,8/5. Ini adalah pilihan default ketika Anda menjalankan pipeline Puppeteer sendiri dan menginginkan biaya terendah per halaman yang berhasil.
Bright Data adalah pilihan enterprise. Selain residential (promo ~$2,50/GB, reguler $5), layanan ini menawarkan Scraping Browser hosted yang terhubung melalui CDP (puppeteer.connect({ browserWSEndpoint })) dan menyertakan proxy serta anti-bot, plus Web Unlocker. Oxylabs (mulai dari $6/GB, pool 175M+) adalah opsi enterprise berstandar SLA dengan panduan Puppeteer terdokumentasi. Decodo (mulai dari $3,75/GB, sticky hingga 24 jam) merupakan pilihan pasar menengah yang seimbang. IPRoyal (mulai dari $7,35/GB, sticky hingga 7 hari) cocok untuk alur Puppeteer panjang dengan sesi stabil. SOAX ($3,60/GB, 155M+ residential + 33M+ mobile) kuat saat Anda memerlukan IP mobile. Webshare (tier gratis, datacenter mulai $2,99/bln) adalah pilihan hemat mandiri, sedangkan NetNut (mulai dari $3,53/GB) dipilih untuk stabilitas ISP-residential.
Proxy Rotating vs Sticky dengan Puppeteer
Dua mode, dua pekerjaan. Residential rotating, yaitu IP baru per koneksi, adalah default untuk pengumpulan luas: scraping banyak halaman, listing, atau SERP ketika setiap request berdiri sendiri. Dengan gateway rotating, Anda memperoleh IP baru secara otomatis; untuk melakukan rotation secara eksplisit di Puppeteer, luncurkan browser baru per proxy atau arahkan proxy-chain ke endpoint rotating. Sticky session, yaitu IP yang sama dipertahankan dari menit hingga hari, diperlukan oleh alur stateful: login, menavigasi funnel multilangkah, atau mempertahankan keranjang, karena rotation di tengah alur merusak sesi dan memicu anti-bot. Pertahankan satu browser (dan satu IP sticky) untuk seluruh alur; sticky hingga 7 hari dari IPRoyal adalah yang terpanjang. Sebagian besar stack Puppeteer memadukan keduanya: rotating untuk pengumpulan, pool sticky untuk pekerjaan multilangkah.
Kesalahan Umum Proxy Puppeteer
- Menaruh kredensial dalam URL proxy. Chrome mengabaikannya. Gunakan
page.authenticate()(sebelumpage.goto()) atauproxy-chain. - Memanggil
page.authenticate()setelah navigasi. Ini harus dijalankan sebelumgotopertama, atau request gagal dengan 407. - Menggunakan IP datacenter pada target yang dilindungi: IP tersebut cepat diblokir; gunakan residential atau mobile untuk apa pun yang memakai anti-bot sungguhan.
- Melupakan fingerprint. Proxy menyembunyikan IP Anda, bukan sinyal bot Anda. Padukan dengan user agent realistis dan
puppeteer-extra-plugin-stealthagar Chrome headless tidak membocorkan dirinya. - Mengharapkan SOCKS5 terautentikasi berfungsi: ini tidak berfungsi di Chromium; gunakan HTTP/HTTPS untuk proxy username/password.
Jenis Proxy Apa untuk Puppeteer: Residential, Datacenter, atau Mobile?
Tiga jenis ini sesuai untuk tiga pekerjaan:
- Residential ($1/GB): andalan default. IP ISP konsumen nyata untuk sebagian besar scraping Puppeteer: e-commerce, SERP, konten, dan apa pun yang menggunakan anti-bot. Jika Anda memilih satu jenis, pilih ini.
- Mobile ($2/GB): IP carrier nyata untuk target tersulit dan tampilan mobile-web atau in-app. Ini kelas IP paling tepercaya, jadi gunakan hanya untuk endpoint yang memblokir residential.
- Datacenter ($0,50/GB): termurah dan tercepat, untuk lapisan tanpa perlindungan: mengurai halaman yang sudah dikumpulkan, data referensi terbuka, atau infrastruktur Anda sendiri. Jangan arahkan ke situs yang sarat anti-bot.
Untuk sebagian besar pekerjaan Puppeteer, polanya adalah residential untuk pengumpulan, mobile untuk beberapa target yang dilindungi atau hanya tersedia di aplikasi, dan datacenter untuk pekerjaan murah tanpa perlindungan. DataImpulse menawarkan ketiganya dalam satu akun pay-as-you-go, sehingga satu pipeline Puppeteer dapat merutekan setiap browser ke tier yang tepat.
Cara Memulai dengan DataImpulse + Puppeteer
Langkah 1. Buat akun DataImpulse dan ambil kredensial residential Anda. Intro $5 / 5GB tidak pernah kedaluwarsa, jadi ini benar-benar anggaran uji coba.
Langkah 2. Tambahkan --proxy-server=http://gw.dataimpulse.com:823 ke args peluncuran Anda, lalu panggil page.authenticate({ username: 'YOUR_LOGIN__cr.us', password: '...' }) sebelum bernavigasi, atau bungkus URL berkredensial dengan proxy-chain. Tambahkan kode negara seperti __cr.us ke username untuk geo-targeting. Pertahankan proxy terautentikasi pada HTTP/HTTPS: Puppeteer tidak menjalankan auth melalui SOCKS5.
Langkah 3. Luncurkan ulang (atau gunakan proxy-chain) untuk melakukan rotation, dan pertahankan satu browser sticky untuk alur stateful. Padukan dengan puppeteer-extra-plugin-stealth dan user agent realistis. Lihat tutorial proxy Puppeteer dan halaman proxy residential untuk detailnya.
FAQ
Bagaimana cara menggunakan proxy di Puppeteer?
Masukkan --proxy-server=http://gw.dataimpulse.com:823 ke array args pada puppeteer.launch(). Untuk proxy terautentikasi, panggil page.authenticate({ username, password }) sebelum page.goto(). Chrome tidak membaca kredensial dari URL proxy. Sebagai alternatif, gunakan library proxy-chain, yang menyimpan kredensial di proxy lokal dan meneruskannya ke gateway.
Proxy apa yang terbaik untuk Puppeteer?
Proxy residential, karena sebagian besar target memblokir IP datacenter. DataImpulse seharga $1/GB adalah pilihan bernilai terbaik (HTTP/HTTPS/SOCKS5, 90M+ IP, tutorial Puppeteer resmi); Scraping Browser terkelola dari Bright Data atau Oxylabs sesuai untuk enterprise; SOAX dan DataImpulse mobile ($2/GB) membantu pada tampilan aplikasi. Selalu padukan proxy dengan plugin stealth dan fingerprint realistis.
Mengapa proxy Puppeteer saya menghasilkan error 407?
Error 407 (Autentikasi Proxy Diperlukan) berarti proxy memerlukan kredensial dan Puppeteer tidak menyediakannya, biasanya karena kredensial dimasukkan ke URL (diabaikan Chrome) atau page.authenticate() dipanggil setelah navigasi pertama. Panggil page.authenticate({ username, password }) tepat setelah newPage() dan sebelum page.goto(), atau gunakan proxy-chain untuk menangani auth.
Bagaimana cara melakukan rotation proxy di Puppeteer?
Flag --proxy-server tetap per browser, jadi lakukan rotation dengan meluncurkan browser baru per proxy atau mengarahkan library proxy-chain ke gateway rotating. Dengan gateway residential rotating seperti DataImpulse, setiap koneksi baru sudah memperoleh IP baru, jadi Anda sering tidak perlu mengelola daftar IP. Untuk alur stateful, pertahankan satu IP sticky selama seluruh sesi alih-alih melakukan rotation.
Apakah Puppeteer mendukung SOCKS5 dan proxy terautentikasi?
Puppeteer mendukung proxy HTTP/HTTPS terautentikasi melalui page.authenticate() atau proxy-chain. Puppeteer dapat menggunakan SOCKS5 (--proxy-server=socks5://...), tetapi Chromium tidak mendukung authentication username/password melalui SOCKS5. Jadi, gunakan endpoint HTTP/HTTPS untuk proxy residential terautentikasi dan gunakan SOCKS5 khusus untuk akses yang IP-nya masuk whitelist.
Berapa biaya proxy Puppeteer?
Residential mentah dihargai per GB: DataImpulse $1/GB (batas nilai terendah), NetNut mulai $3,53, SOAX $3,60, Decodo $3,75, Oxylabs mulai $6, IPRoyal $7,35; Webshare menawarkan subscription hemat mulai $3,50/bln. Halaman yang dirender hanya sebagian kecil dari GB, sehingga residential per GB jauh lebih murah daripada API terkelola per rekaman untuk pengumpulan Puppeteer ber-volume tinggi; opsi terkelola sesuai untuk target tersulit.
