Puppeteer (Node.js) ішінде аутентификациялы проксиді қалай баптау керек
Updated:
Puppeteer Chrome мен Chromium-ді DevTools Protocol (CDP) арқылы басқарады және HTTP 407 прокси аутентификациясы үшін кірістірілген await page.authenticate({ username, password }) API-ін ұсынады. --proxy-server=http://ip:port параметрін page.authenticate() функциясымен бірге пайдалану Node.js скреперлеріңізге сыртқы браузер кеңейтімдерінсіз-ақ VinaProxy статикалық проксилері арқылы трафик бағыттауға мүмкіндік береді.
--proxy-server=http://ip:port + page.authenticate({ username, password })- 1 IP40 000 ₫
- 5+ IP35 000 ₫
- 10+ IP25 000 ₫
- 20+ IP25 000 ₫
- 50+ IP25 000 ₫
- 100+ IP25 000 ₫
- 200+ IP25 000 ₫
- 500+ IP25 000 ₫
- 1000+ IP22 000 ₫
- 2000+ IP20 000 ₫
- 1 IP40 000 ₫
- 5+ IP35 000 ₫
- 10+ IP25 000 ₫
- 20+ IP25 000 ₫
- 50+ IP25 000 ₫
- 100+ IP25 000 ₫
- 200+ IP25 000 ₫
- 500+ IP25 000 ₫
- 1000+ IP22 000 ₫
- 2000+ IP20 000 ₫
Puppeteer-де проксиді екі кезеңде баптау
user:pass@ деректерін ешқашан --proxy-server іске қосу аргументінің ішіне енгізбеңіз. Оның орнына іске қосу кезінде хост пен портты беріп, аутентификацияны Page данасында орындаңыз:
| Қадам | Puppeteer коды | Неліктен маңызды |
|---|---|---|
| 1. Chromium-ді іске қосу | puppeteer.launch({ args: ['--proxy-server=http://ip:port'] }) | Chromium желілік сокетін сіздің VinaProxy проксиіңізге бағыттайды |
| 2. Бетті аутентификациялау | await page.authenticate({ username, password }) | HTTP 407 сұраулары үшін CDP кіру деректерін ұсынады |
| 3. Бетке өту | await page.goto(url, { waitUntil: 'domcontentloaded' }) | Мақсатты URL мекенжайын аутентификацияланған туннель арқылы жүктейді |
proxy-chain арқылы бірнеше проксиді қойындылар арасында ротациялау
page.authenticate()әрбірPageқойындысы деңгейінде қолданылатынын есте сақтаңыз — оныbrowser.newPage()қайтарған әрбір жаңа қойындыда шақырыңыз- Бір Chromium процесі ішіндегі инкогнито контексттерінде әртүрлі проксилерді пайдалану үшін әрбір
http://user:pass@ip:portURL мекенжайынproxy-chainnpm пакетімен (anonymizeProxy()) өңдеп,proxyServerмәнінbrowser.createBrowserContext({ proxyServer })функциясына беріңіз puppeteer-extraжәнеpuppeteer-extra-plugin-stealthпакеттерімен үйлесімді
Қадам бойынша
- 1
puppeteer.launch() функциясына --proxy-server=http://ip:port беру
Браузерді
const browser = await puppeteer.launch({ args: ['--proxy-server=http://ip:port'] });кодымен іске қосыңыз. - 2
Жаңа бетте await page.authenticate() шақыру
const page = await browser.newPage();арқылы қойынды ашып,await page.authenticate({ username: 'USER', password: 'PASS' });шақырыңыз. - 3
Шығыс IP мекенжайын тексеру
await page.goto('https://vinaproxy.com/api/my-ip');кодын орындап, қайтарылған JSON-ды тексеріңіз. - 4
Браузер процестерін жабу
Жұмыс аяқталған соң
await browser.close();шақырыңыз.
Жиі қойылатын сұрақтар
Puppeteer неліктен `ERR_NO_SUPPORTED_PROXIES` қатесін береді?
Бұл қате user:pass@ деректерін --proxy-server=http://user:pass@ip:port ішіне қосқан кезде пайда болады. --proxy-server=http://ip:port параметрін таза күйде қалдырып, кіру деректерін await page.authenticate({ username, password }) арқылы беріңіз.
`browser.newPage()` арқылы ашылған екінші қойынды неге HTTP 407 қатесімен аяқталды?
page.authenticate() әр қойындыға жеке қолданылады. Жаңадан ашылған кез келген қойындыда бетке өтпес бұрын await secondPage.authenticate({ username, password }) шақырыңыз.
Headless Chrome скрепингі үшін VinaProxy проксилері шектеусіз бе?
Иә. Барлық Dedicated IPv4 және Static ISP тарифтері шектеусіз ай сайынғы трафикті қамтиды.
Node.js Puppeteer паркіңізді статикалық IP-мен күшейтіңіз
7 елдегі лезде берілетін шектеусіз Dedicated IPv4 және Static ISP проксилері.
Puppeteer проксилерін сатып алу