Чӣ тавр прокси бо аутентификатсияро дар Puppeteer (Node.js) танзим кунем
Updated:
Puppeteer браузерҳои Chrome ва Chromium-ро тавассути DevTools Protocol (CDP) идора карда, API-и аслии await page.authenticate({ username, password })-ро барои аутентификатсияи прокси бо 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 ҷойгир накунед. Ба ҷои ин, ҳангоми оғоз хост ва портро интиқол диҳед ва дар намунаи 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, ҳар як URL-и
http://user:pass@ip:port-ро бо бастаи npm-иproxy-chain(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