Käynnistä välityspalvelimella ja todenna#
import puppeteer from "puppeteer";
const browser = await puppeteer.launch({
headless: true,
args: ["--proxy-server=http://res.proxy-cyber.com:9000", "--no-first-run"],
});
const page = await browser.newPage();
await page.authenticate({ username: "USER-cc-us-sid-run1-ttl-30m", password: "PASS" });
await page.goto("https://api.ipify.org", { waitUntil: "domcontentloaded", timeout: 45000 });
console.log(await page.evaluate(() => document.body.innerText));
await browser.close();Käytä erillistä istuntotunnistetta jokaiselle itsenäiselle työnkululle, jos määritetty yhdyskäytävä tukee sitä. Vahvista sallittu kesto ja sijaintiparametrit yhteystiedoissasi. Kotilaite voi katkaista yhteyden ennen pyydettyä kestoa; pysyvä istunto ei takaa samaa IP-osoitetta päivien ajan. Kiinteän osoitteen saamiseksi vertaile omaan staattiseen tuotteeseen.
Yksi välityspalvelin selainta kohti#
Käynnistystason --proxy-server asetus koskee kyseisen selaimen oletusreititys. Current Puppeteer tukee myös proxyServeria browser.createBrowserContext() -komennossa, käyttäjätunnus annetaan page.authenticate() -toiminnon kautta. Käytä erillisiä konteksteja eri välityspalvelinasetuksille ja erillisiä käyttäjätietohakemistoja pysyviä profiileja varten; tarkista poistumiskohta jokaisessa kontekstissa.
Kuvien, fonttien ja median estäminen#
await page.setRequestInterception(true);
page.on("request", (req) => {
const t = req.resourceType();
if (["image", "media", "font", "stylesheet"].includes(t)) return req.abort();
req.continue();
});Johdonmukaisuus#
- Aseta
Accept-Languageja aikavyöhyke lähtömaan maassa:page.setExtraHTTPHeaders({\"Accept-Language\": \"de-DE,de;q=0.9\"})japage.emulateTimezone(\"Europe/Berlin\"). - Poista WebRTC-vuotot käytöstä
--force-webrtc-ip-handling-policy=disable_non_proxied_udpKäynnistysargumenteissa. - Pidä yksi selain tiliä kohti. Käytä sen käyttäjätietohakemistoa uudelleen, jos tilin pitäisi näyttää palaavalta laitteelta.
Virheet, joita kohtaat#
| Oireet | Syy | Korjaa |
|---|---|---|
| ERR_TUNNEL_CONNECTION_FAILED -virhe | Yhdyskäytävä epäonnistui CONNECT: tunnistetiedot, parametri tai ei poistu | Toista cURL -v:llä lukeaksesi yhdyskäytävän koodin |
| net::ERR_PROXY_AUTH_UNSUPPPORTED / välityspalvelimen tunnistusvirhe | authenticate() kutsutaan navigoinnin jälkeen | Soita page.authenticate ennen goto |
| Sama IP jokaisessa selaimessa | Sama istuntotunnus uudelleenkäytettynä | Käytä erillistä -sid--merkintää jokaista selainta kohti tai jätä se pois |
| Erittäin hidas ensimmäinen kuorma | Kotitalouksien ulostulo plus raskas sivu | Estää resurssit; aikakatkaisu 45 sekuntiin |
Ihmiset kysyvät kysymyksiä#
Voiko Puppeteer käyttää SOCKS5:tä salasanalla?
Chrome ei tue SOCKS5-todennusta. Käytä HTTP-välityspalvelinta portilla 9000 page.authenticate-komennolla tai lisää palvelimesi IP-osoite valkoiselle listalle ja anna --proxy-server=socks5://res.proxy-cyber.com:9001.