Ինչպես կարգավորել նույնականացվող պրոքսի Puppeteer-ում (Node.js)
Updated:
Puppeteer-ը կառավարում է Chrome-ը և Chromium-ը DevTools Protocol-ի (CDP) միջոցով՝ տրամադրելով ներկառուցված await page.authenticate({ username, password }) API՝ HTTP 407 պրոքսիի նույնականացման համար: --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 գործարկման արգումենտի մեջ: Փոխարենը, գործարկման պահին փոխանցեք host-ն ու port-ը և նույնականացումն անցեք Page ինստանսի վրա:
| Քայլ | Puppeteer-ի կոդ | Ինչու է դա կարևոր |
|---|---|---|
| 1. Գործարկել Chromium-ը | puppeteer.launch({ args: ['--proxy-server=http://ip:port'] }) | Ուղղորդում է Chromium-ի ցանցային սոկետը ձեր VinaProxy պրոքսիին |
| 2. Նույնականացնել էջը | await page.authenticate({ username, password }) | Փոխանցում է CDP մուտքային տվյալները HTTP 407 հարցումների համար |
| 3. Անցնել հասցեով | await page.goto(url, { waitUntil: 'domcontentloaded' }) | Բեռնում է թիրախային URL-ը նույնականացված թունելով |
Մի քանի պրոքսիների ռոտացիա ներդիրների միջև proxy-chain-ի միջոցով
- Հիշեք, որ
page.authenticate()-ը գործում է յուրաքանչյուրPageներդիրի համար առանձին. կանչեք այնbrowser.newPage()-ի միջոցով բացված ամեն նոր ներդիրի վրա - Մեկ Chromium պրոցեսի ներսում ինկոգնիտո կոնտեքստների միջև տարբեր պրոքսիներ օգտագործելու համար փաթեթավորեք յուրաքանչյուր
http://user:pass@ip:portURLproxy-chainnpm փաթեթով (anonymizeProxy()) և փոխանցեքproxyServer-ըbrowser.createBrowserContext({ proxyServer })-ին - Համատեղելի է
puppeteer-extra-ի ևpuppeteer-extra-plugin-stealth-ի հետ
Քայլ առ քայլ
- 1
Փոխանցեք --proxy-server=http://ip:port-ը puppeteer.launch()-ին
Գործարկեք բրաուզերը
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 }) նախքան որևէ նոր բացված ներդիրով անցնելը:
Արդյո՞ք VinaProxy պրոքսիներն անսահմանափակ են headless Chrome-ով սկրեյպինգի համար:
Այո: Dedicated IPv4 և Static ISP բոլոր սակագնային պլանները ներառում են ամսական անսահմանափակ թրաֆիկ:
Ապահովեք ձեր Node.js Puppeteer համակարգը ստատիկ IP-ներով
Ակնթարթային անսահմանափակ Dedicated IPv4 և Static ISP պրոքսիներ 7 երկրում:
Գնել Puppeteer պրոքսիներ