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` катасын берет?
Бул ката --proxy-server=http://user:pass@ip:port ичине user:pass@ кошкондо пайда болот. --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 проксилерин сатып алуу