Cara menyediakan proksi dengan pengesahan dalam Puppeteer (Node.js)
Updated:
Puppeteer mengawal Chrome dan Chromium melalui DevTools Protocol (CDP), menyediakan API asli await page.authenticate({ username, password }) untuk pengesahan proksi HTTP 407. Menggandingkan --proxy-server=http://ip:port dengan page.authenticate() membolehkan pengikis Node.js anda menghantar trafik melalui proksi statik VinaProxy tanpa sebarang sambungan pelayar luaran.
--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 proksi dua langkah dalam Puppeteer
Jangan sekali-kali menyematkan user:pass@ di dalam argumen pelancaran --proxy-server. Sebaliknya, hantar hos dan port semasa pelancaran serta lakukan pengesahan pada tika Page:
| Langkah | Kod Puppeteer | Kepentingannya |
|---|---|---|
| 1. Lancarkan Chromium | puppeteer.launch({ args: ['--proxy-server=http://ip:port'] }) | Mengarahkan soket rangkaian Chromium ke proksi VinaProxy anda |
| 2. Sahkan Halaman | await page.authenticate({ username, password }) | Membekalkan kelayakan CDP untuk cabaran HTTP 407 |
| 3. Navigasi | await page.goto(url, { waitUntil: 'domcontentloaded' }) | Memuatkan URL sasaran melalui terowong yang disahkan |
Menggilirkan beberapa proksi merentas tab dengan proxy-chain
- Ingat bahawa skop
page.authenticate()adalah khusus bagi setiap tabPage—panggilnya pada setiap tab baharu yang dikembalikan olehbrowser.newPage() - Untuk menggunakan proksi berbeza merentas konteks inkognito dalam satu proses Chromium, bungkus setiap URL
http://user:pass@ip:portdengan pakej npmproxy-chain(anonymizeProxy()) dan hantarproxyServerkepadabrowser.createBrowserContext({ proxyServer }) - Serasi dengan
puppeteer-extradanpuppeteer-extra-plugin-stealth
Langkah demi langkah
- 1
Hantar --proxy-server=http://ip:port kepada puppeteer.launch()
Lancarkan pelayar dengan
const browser = await puppeteer.launch({ args: ['--proxy-server=http://ip:port'] });. - 2
Panggil await page.authenticate() pada halaman baharu
Buka tab dengan
const page = await browser.newPage();dan panggilawait page.authenticate({ username: 'USER', password: 'PASS' });. - 3
Uji alamat IP keluar
Jalankan
await page.goto('https://vinaproxy.com/api/my-ip');dan periksa JSON yang dikembalikan. - 4
Bersihkan proses pelayar
Panggil
await browser.close();apabila tugas selesai.
Soalan lazim
Mengapa Puppeteer mengeluarkan ralat `ERR_NO_SUPPORTED_PROXIES`?
Ralat tersebut berlaku jika anda memasukkan user:pass@ di dalam --proxy-server=http://user:pass@ip:port. Pastikan --proxy-server=http://ip:port kekal bersih dan hantar kelayakan melalui await page.authenticate({ username, password }).
Mengapa tab kedua yang dibuka dengan `browser.newPage()` gagal dengan HTTP 407?
page.authenticate() berkuat kuasa bagi setiap tab. Panggil await secondPage.authenticate({ username, password }) sebelum menavigasi pada mana-mana tab yang baru dibuka.
Adakah proksi VinaProxy tanpa had untuk pengikisan Chrome headless?
Ya. Semua pelan Dedicated IPv4 dan Static ISP merangkumi lebar jalur bulanan tanpa had.
Perkasakan armada Node.js Puppeteer anda dengan IP statik
Proksi Dedicated IPv4 dan Static ISP tanpa had segera di 7 buah negara.
Beli Proksi Puppeteer