Kuinka määrittää todennettu proxy Puppeteerissa (Node.js)
Updated:
Puppeteer ohjaa Chromea ja Chromiumia DevTools-protokollan (CDP) kautta ja tarjoaa natiivin await page.authenticate({ username, password }) -rajapinnan HTTP 407 -proxy-todennukseen. Yhdistämällä --proxy-server=http://ip:port ja page.authenticate() Node.js-kaapimesi voivat reitittää liikenteen palveluntarjoajan VinaProxy staattisten proxyjen kautta ilman erillisiä selainlaajennuksia.
--proxy-server=http://ip:port + page.authenticate({ username, password })- 1 IP40 000 VND
- 5+ IP:tä35 000 VND
- 10+ IP:tä25 000 VND
- 20+ IP:tä25 000 VND
- 50+ IP:tä25 000 VND
- 100+ IP:tä25 000 VND
- 200+ IP:tä25 000 VND
- 500+ IP:tä25 000 VND
- 1000+ IP:tä22 000 VND
- 2000+ IP:tä20 000 VND
- 1 IP40 000 VND
- 5+ IP:tä35 000 VND
- 10+ IP:tä25 000 VND
- 20+ IP:tä25 000 VND
- 50+ IP:tä25 000 VND
- 100+ IP:tä25 000 VND
- 200+ IP:tä25 000 VND
- 500+ IP:tä25 000 VND
- 1000+ IP:tä22 000 VND
- 2000+ IP:tä20 000 VND
Kaksivaiheinen proxyn määritys Puppeteerissa
Älä koskaan upota user:pass@-osaa --proxy-server-käynnistysargumentin sisään. Välitä sen sijaan palvelin ja portti käynnistyksen yhteydessä ja todenna Page-instanssissa:
| Vaihe | Puppeteer-koodi | Miksi sillä on merkitystä |
|---|---|---|
| 1. Käynnistä Chromium | puppeteer.launch({ args: ['--proxy-server=http://ip:port'] }) | Ohjaa Chromiumin verkkoliitännän VinaProxy-proxyysi |
| 2. Todenna sivu | await page.authenticate({ username, password }) | Toimittaa CDP-tunnisteet HTTP 407 -todennuspyyntöihin |
| 3. Siirry sivulle | await page.goto(url, { waitUntil: 'domcontentloaded' }) | Lataa kohde-URL-osoitteen todennetun tunnelin kautta |
Useiden proxyjen kierrättäminen välilehtien välillä proxy-chain-paketilla
- Muista, että
page.authenticate()on välilehtikohtainen (Page) – kutsu sitä jokaisellebrowser.newPage()-kutsun palauttamalle uudelle välilehdelle - Käyttääksesi eri proxyjä incognito-konteksteissa yhden Chromium-prosessin sisällä, kääri kukin
http://user:pass@ip:port-URL-osoiteproxy-chain-npm-paketilla (anonymizeProxy()) ja välitäproxyServerfunktiollebrowser.createBrowserContext({ proxyServer }) - Yhteensopiva kirjastojen
puppeteer-extrajapuppeteer-extra-plugin-stealthkanssa
Vaihe vaiheelta
- 1
Välitä --proxy-server=http://ip:port funktiolle puppeteer.launch()
Käynnistä selain komennolla
const browser = await puppeteer.launch({ args: ['--proxy-server=http://ip:port'] });. - 2
Kutsu await page.authenticate() uudella sivulla
Avaa välilehti komennolla
const page = await browser.newPage();ja kutsuawait page.authenticate({ username: 'USER', password: 'PASS' });. - 3
Testaa ulospäin näkyvä IP-osoite
Suorita
await page.goto('https://vinaproxy.com/api/my-ip');ja tarkista palautettu JSON. - 4
Sulje selainprosessit
Kutsu
await browser.close();, kun työ on valmis.
Usein kysytyt kysymykset
Miksi Puppeteer antaa virheen `ERR_NO_SUPPORTED_PROXIES`?
Tämä virhe ilmenee, jos sisällytät tunnisteet user:pass@ muotoon --proxy-server=http://user:pass@ip:port. Pidä --proxy-server=http://ip:port pelkkänä osoitteena ja välitä kirjautumistiedot kutsulla await page.authenticate({ username, password }).
Miksi toinen `browser.newPage()` -kutsulla avattu välilehti epäonnistui virheellä HTTP 407?
page.authenticate() on välilehtikohtainen. Kutsu await secondPage.authenticate({ username, password }) ennen siirtymistä millekään uudelle avatulle välilehdelle.
Ovatko VinaProxy-proxyt rajoittamattomia headless Chrome -tiedonkeruussa?
Kyllä. Kaikki Dedicated IPv4- ja Static ISP -paketit sisältävät rajattoman kuukausittaisen kaistanleveyden.
Tehosta Node.js Puppeteer -ympäristöäsi staattisilla IP-osoitteilla
Heti käyttövalmiit, rajoittamattomat Dedicated IPv4- ja Static ISP -proxyt 7 maassa.
Osta Puppeteer-proxyjä