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 IP₫ 40,000
- 5+ IP₫ 35,000
- 10+ IP₫ 25,000
- 20+ IP₫ 25,000
- 50+ IP₫ 25,000
- 100+ IP₫ 25,000
- 200+ IP₫ 25,000
- 500+ IP₫ 25,000
- 1000+ IP₫ 22,000
- 2000+ IP₫ 20,000
- 1 IP₫ 40,000
- 5+ IP₫ 35,000
- 10+ IP₫ 25,000
- 20+ IP₫ 25,000
- 50+ IP₫ 25,000
- 100+ IP₫ 25,000
- 200+ IP₫ 25,000
- 500+ IP₫ 25,000
- 1000+ IP₫ 22,000
- 2000+ IP₫ 20,000
Puppeteer дахь прокси тохиргооны хоёр алхам
--proxy-server эхлүүлэх аргумент дотор user:pass@-ийг хэзээ ч бүү бичээрэй. Үүний оронд хост болон портыг эхлүүлэх үед дамжуулж, 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 })-ийг дуудна уу.
VinaProxy прокси нь headless Chrome скрепинг хийхэд хязгааргүй траффиктэй юу?
Тийм. Dedicated IPv4 болон Static ISP-ийн бүх багцад сарын хязгааргүй дата багтсан байдаг.
Node.js Puppeteer кластераа статик IP-аар цэнэглээрэй
7 улсыг хамарсан шуурхай, хязгааргүй Dedicated IPv4 болон Static ISP проксиуд.
Puppeteer прокси худалдаж авах