Puppeteer'da (Node.js) kimlik doğrulamalı proxy nasıl kurulur?
Updated:
Puppeteer, Chrome ve Chromium'u DevTools Protokolü (CDP) üzerinden denetleyerek HTTP 407 proxy kimlik doğrulaması için yerel bir await page.authenticate({ username, password }) API'si sunar. --proxy-server=http://ip:port ile page.authenticate() yöntemini birlikte kullanmak, Node.js scraper'larınızın herhangi bir harici tarayıcı eklentisi olmadan VinaProxy statik proxyleri üzerinden yönlendirilmesini sağlar.
--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
Puppeteer'da iki adımlı proxy yapılandırması
user:pass@ bilgisini asla --proxy-server başlatma argümanının içine eklemeyin. Bunun yerine, başlatma sırasında host ve portu iletin ve kimlik doğrulamasını Page örneği üzerinde gerçekleştirin:
| Adım | Puppeteer Kodu | Neden Önemli |
|---|---|---|
| 1. Chromium'u Başlatın | puppeteer.launch({ args: ['--proxy-server=http://ip:port'] }) | Chromium'un ağ soketini VinaProxy proxynize yönlendirir |
| 2. Sayfa Kimliğini Doğrulayın | await page.authenticate({ username, password }) | HTTP 407 sorguları için CDP kimlik bilgilerini sağlar |
| 3. Hedefe Gidin | await page.goto(url, { waitUntil: 'domcontentloaded' }) | Hedef URL'yi kimliği doğrulanmış tünel üzerinden yükler |
proxy-chain ile sekmeler arasında birden çok proxy rotasyonu
page.authenticate()fonksiyonununPagesekmesi başına geçerli olduğunu unutmayın;browser.newPage()tarafından döndürülen her yeni sekmede bu fonksiyonu çağırın- Tek bir Chromium işlemi içindeki gizli (incognito) bağlamlarda farklı proxyler kullanmak için her
http://user:pass@ip:portURL'siniproxy-chainnpm paketi (anonymizeProxy()) ile sarmalayın veproxyServerdeğerinibrowser.createBrowserContext({ proxyServer })fonksiyonuna iletin puppeteer-extravepuppeteer-extra-plugin-stealthile uyumludur
Adım adım
- 1
--proxy-server=http://ip:port parametresini puppeteer.launch() fonksiyonuna iletin
Tarayıcıyı
const browser = await puppeteer.launch({ args: ['--proxy-server=http://ip:port'] });ile başlatın. - 2
Yeni sayfada await page.authenticate() çağrısı yapın
const page = await browser.newPage();ile bir sekme açın veawait page.authenticate({ username: 'USER', password: 'PASS' });çağrısını yapın. - 3
Çıkış IP adresini test edin
await page.goto('https://vinaproxy.com/api/my-ip');komutunu çalıştırın ve dönen JSON verisini inceleyin. - 4
Tarayıcı işlemlerini temizleyin
İşlem bittiğinde
await browser.close();çağrısını yapın.
Sıkça sorulan sorular
Puppeteer neden `ERR_NO_SUPPORTED_PROXIES` hatası veriyor?
Bu hata, --proxy-server=http://user:pass@ip:port içine user:pass@ eklerseniz meydana gelir. --proxy-server=http://ip:port kısmını sade tutun ve kimlik bilgilerini await page.authenticate({ username, password }) aracılığıyla iletin.
`browser.newPage()` ile açılan ikinci sekme neden HTTP 407 hatası verdi?
page.authenticate() sekme başına uygulanır. Yeni açılan herhangi bir sekmede gezinmeden önce await secondPage.authenticate({ username, password }) çağrısı yapın.
Headless Chrome ile scraping için VinaProxy proxyleri kotasız mı?
Evet. Tüm Dedicated IPv4 ve Static ISP planları sınırsız aylık bant genişliği içerir.
Node.js Puppeteer filonuzu statik IP'lerle güçlendirin
7 ülkede anında teslim kotasız Dedicated IPv4 ve Static ISP proxyleri.
Puppeteer Proxy Satın Al