Paano mag-set up ng authenticated proxy sa Puppeteer (Node.js)
Updated:
Kinokontrol ng Puppeteer ang Chrome at Chromium gamit ang DevTools Protocol (CDP), na nagbibigay ng native na await page.authenticate({ username, password }) API para sa HTTP 407 proxy authentication. Kapag pinagsama ang --proxy-server=http://ip:port at page.authenticate(), ang iyong mga scraper sa Node.js ay makakapag-route sa pamamagitan ng mga static proxy ng VinaProxy nang hindi nangangailangan ng anumang external browser extension.
--proxy-server=http://ip:port + page.authenticate({ username, password })- 1 IP₫40,000
- 5+ na IP₫35,000
- 10+ na IP₫25,000
- 20+ na IP₫25,000
- 50+ na IP₫25,000
- 100+ na IP₫25,000
- 200+ na IP₫25,000
- 500+ na IP₫25,000
- 1000+ na IP₫22,000
- 2000+ na IP₫20,000
- 1 IP₫40,000
- 5+ na IP₫35,000
- 10+ na IP₫25,000
- 20+ na IP₫25,000
- 50+ na IP₫25,000
- 100+ na IP₫25,000
- 200+ na IP₫25,000
- 500+ na IP₫25,000
- 1000+ na IP₫22,000
- 2000+ na IP₫20,000
Dalawang hakbang na proxy configuration sa Puppeteer
Huwag kailanman i-embed ang user:pass@ sa loob ng launch argument na --proxy-server. Sa halip, ipasa ang host at port sa pag-launch at mag-authenticate sa Page instance:
| Hakbang | Code sa Puppeteer | Bakit Ito Mahalaga |
|---|---|---|
| 1. I-launch ang Chromium | puppeteer.launch({ args: ['--proxy-server=http://ip:port'] }) | Itinuturo ang network socket ng Chromium sa iyong VinaProxy proxy |
| 2. I-authenticate ang Page | await page.authenticate({ username, password }) | Nagbibigay ng mga CDP credential para sa mga HTTP 407 challenge |
| 3. Mag-navigate | await page.goto(url, { waitUntil: 'domcontentloaded' }) | Ilo-load ang target na URL sa pamamagitan ng authenticated tunnel |
Pag-rotate ng maraming proxy sa iba't ibang tab gamit ang proxy-chain
- Tandaan na ang
page.authenticate()ay naka-scope bawatPagetab—tawagin ito sa bawat bagong tab na ibinabalik ngbrowser.newPage() - Upang gumamit ng iba't ibang proxy sa mga incognito context sa loob ng iisang proseso ng Chromium, i-wrap ang bawat
http://user:pass@ip:portURL gamit angproxy-chainnpm package (anonymizeProxy()) at ipasa angproxyServersabrowser.createBrowserContext({ proxyServer }) - Compatible sa
puppeteer-extraatpuppeteer-extra-plugin-stealth
Sunod-sunod na hakbang
- 1
Ipasa ang --proxy-server=http://ip:port sa puppeteer.launch()
I-launch ang browser gamit ang
const browser = await puppeteer.launch({ args: ['--proxy-server=http://ip:port'] });. - 2
Tawagin ang await page.authenticate() sa bagong page
Magbukas ng tab gamit ang
const page = await browser.newPage();at tawagin angawait page.authenticate({ username: 'USER', password: 'PASS' });. - 3
Subukan ang exit IP address
Patakbuhin ang
await page.goto('https://vinaproxy.com/api/my-ip');at suriin ang ibinalik na JSON. - 4
Linisin ang mga proseso ng browser
Tawagin ang
await browser.close();kapag natapos na ang gawain.
Mga madalas itanong
Bakit naglalabas ang Puppeteer ng `ERR_NO_SUPPORTED_PROXIES`?
Nangyayari ang error na iyon kung isasama mo ang user:pass@ sa loob ng --proxy-server=http://user:pass@ip:port. Panatilihing malinis ang --proxy-server=http://ip:port at ipasa ang mga credential sa pamamagitan ng await page.authenticate({ username, password }).
Bakit nag-fail na may HTTP 407 ang pangalawang tab na binuksan gamit ang `browser.newPage()`?
Nalalapat ang page.authenticate() bawat tab. Tawagin ang await secondPage.authenticate({ username, password }) bago mag-navigate sa anumang bagong bukas na tab.
Unmetered ba ang mga proxy ng VinaProxy para sa headless Chrome scraping?
Oo. Kasama sa lahat ng Dedicated IPv4 at Static ISP plan ang walang limitasyong buwanang bandwidth.
Paganahin ang iyong Node.js Puppeteer fleet gamit ang mga static IP
Agad-agad na unmetered Dedicated IPv4 at Static ISP proxy sa 7 bansa.
Bumili ng mga Puppeteer Proxy