Puppeteer-da (Node.js) autentifikatsiyali proksini sozlash
Updated:
Puppeteer Chrome va Chromium-ni DevTools Protocol (CDP) orqali boshqaradi va HTTP 407 proksi autentifikatsiyasi uchun mahalliy await page.authenticate({ username, password }) API-ni taqdim etadi. --proxy-server=http://ip:port parametrini page.authenticate() bilan birga qo‘llash Node.js skraperlaringizga hech qanday tashqi brauzer kengaytmalarsiz VinaProxy statik proksilari orqali yo‘naltirish imkonini beradi.
--proxy-server=http://ip:port + page.authenticate({ username, password })- 1 ta IP40 000 ₫
- 5+ ta IP35 000 ₫
- 10+ ta IP25 000 ₫
- 20+ ta IP25 000 ₫
- 50+ ta IP25 000 ₫
- 100+ ta IP25 000 ₫
- 200+ ta IP25 000 ₫
- 500+ ta IP25 000 ₫
- 1000+ ta IP22 000 ₫
- 2000+ ta IP20 000 ₫
- 1 ta IP40 000 ₫
- 5+ ta IP35 000 ₫
- 10+ ta IP25 000 ₫
- 20+ ta IP25 000 ₫
- 50+ ta IP25 000 ₫
- 100+ ta IP25 000 ₫
- 200+ ta IP25 000 ₫
- 500+ ta IP25 000 ₫
- 1000+ ta IP22 000 ₫
- 2000+ ta IP20 000 ₫
Puppeteer-da ikki bosqichli proksi konfiguratsiyasi
user:pass@ ma’lumotlarini hech qachon --proxy-server ishga tushirish argumenti ichiga kiritmang. Buning o‘rniga, ishga tushirish vaqtida xost va portni uzating hamda Page instansiyasida autentifikatsiyadan o‘ting:
| Bosqich | Puppeteer kodi | Nima uchun bu muhim |
|---|---|---|
| 1. Chromium-ni ishga tushirish | puppeteer.launch({ args: ['--proxy-server=http://ip:port'] }) | Chromium tarmoq soketini VinaProxy proksingizga yo‘naltiradi |
| 2. Sahifani autentifikatsiya qilish | await page.authenticate({ username, password }) | HTTP 407 so‘rovlari uchun CDP hisob ma’lumotlarini taqdim etadi |
| 3. Sahifaga o‘tish | await page.goto(url, { waitUntil: 'domcontentloaded' }) | Maqsadli URL-ni autentifikatsiyalangan tunnel orqali yuklaydi |
proxy-chain yordamida varaqlarda bir nechta proksilarni almashtirish
page.authenticate()har birPagevarag‘i uchun alohida amal qilishini unutmang — unibrowser.newPage()qaytargan har bir yangi varaqda chaqiring- Yagona Chromium jarayoni ichidagi inkognito kontekstlarida turli proksilardan foydalanish uchun har bir
http://user:pass@ip:portURL manziliniproxy-chainnpm paketi (anonymizeProxy()) bilan o‘rang vaproxyServerqiymatinibrowser.createBrowserContext({ proxyServer })funksiyasiga uzating puppeteer-extravapuppeteer-extra-plugin-stealthbilan mos keladi
Bosqichma-bosqich
- 1
--proxy-server=http://ip:port parametrini puppeteer.launch() ga uzatish
Brauzerni
const browser = await puppeteer.launch({ args: ['--proxy-server=http://ip:port'] });yordamida ishga tushiring. - 2
Yangi sahifada await page.authenticate() ni chaqirish
const page = await browser.newPage();orqali yangi varaq oching vaawait page.authenticate({ username: 'USER', password: 'PASS' });ni chaqiring. - 3
Chiqish IP manzilini tekshirish
await page.goto('https://vinaproxy.com/api/my-ip');kodini bajaring va qaytgan JSON-ni tekshiring. - 4
Brauzer jarayonlarini tozalash
Vazifa tugagach,
await browser.close();ni chaqiring.
Ko‘p so‘raladigan savollar
Nega Puppeteer `ERR_NO_SUPPORTED_PROXIES` xatosini beradi?
Bu xato --proxy-server=http://user:pass@ip:port ichida user:pass@ kiritilganda yuz beradi. --proxy-server=http://ip:port parametrini toza qoldiring va hisob ma’lumotlarini await page.authenticate({ username, password }) orqali uzating.
Nega `browser.newPage()` orqali ochilgan ikkinchi varaq HTTP 407 bilan ishlamay qoldi?
page.authenticate() har bir varaq uchun alohida qo‘llanadi. Har qanday yangi ochilgan varaqda navigatsiyadan oldin await secondPage.authenticate({ username, password }) ni chaqiring.
Headless Chrome skrapingi uchun VinaProxy proksilari cheklovsizmi?
Ha. Barcha Dedicated IPv4 va Static ISP tariflari oylik cheksiz trafikni o‘z ichiga oladi.
Node.js Puppeteer tarmog‘ingizni statik IP-lar bilan kuchaytiring
7 ta mamlakat bo‘ylab bir zumda ulanadigan cheksiz Dedicated IPv4 va Static ISP proksilari.
Puppeteer proksilarini sotib olish