Käynnistystason välityspalvelin#
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
browser = p.chromium.launch(proxy={
"server": "http://res.proxy-cyber.com:9000",
"username": "USER-cc-us-sid-run1-ttl-30m",
"password": "PASS",
})
page = browser.new_page()
page.goto("https://api.ipify.org")
print(page.inner_text("body"))
browser.close()import { chromium } from "playwright";
const browser = await chromium.launch({
proxy: { server: "http://res.proxy-cyber.com:9000", username: "USER-cc-us-sid-run1-ttl-30m", password: "PASS" },
});
const page = await browser.newPage();
await page.goto("https://api.ipify.org");
console.log(await page.innerText("body"));
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.
Per-context proxy -palvelimet#
Jos haluat käyttää useita maita tai istuntoja yhdessä selaimessa, käynnistä paikkamerkkivälityspalvelimella ja anna jokaiselle kontekstille oma välityspalvelin.Chromium tarvitsee käynnistystason välityspalvelimen, jotta kontekstikohtaiset välityspalvelimet voidaan hyväksyä.
browser = p.chromium.launch(proxy={"server": "http://per-context"})
de = browser.new_context(proxy={"server": "http://res.proxy-cyber.com:9000", "username": "USER-cc-de-city-berlin-sid-de1-ttl-30m", "password": "PASS"})
us = browser.new_context(proxy={"server": "http://res.proxy-cyber.com:9000", "username": "USER-cc-us-state-tx-sid-us1-ttl-30m", "password": "PASS"})const browser = await chromium.launch({ proxy: { server: "http://per-context" } });
const de = await browser.newContext({ proxy: { server: "http://res.proxy-cyber.com:9000", username: "USER-cc-de-city-berlin-sid-de1-ttl-30m", password: "PASS" } });
const us = await browser.newContext({ proxy: { server: "http://res.proxy-cyber.com:9000", username: "USER-cc-us-state-tx-sid-us1-ttl-30m", password: "PASS" } });Vastaa kontekstia ulostuloon#
Anna jokaiselle kontekstille sen maan kieli ja aikavyöhyke, jotta IP-osoite, kieli ja kello ovat samat: locale=\"de-DE\", timezone_id=\"Europe/Berlin\" Epäyhteensopivuus on vahvempi bottisignaali kuin IP-osoite itse, joten se ei ole ainoa syy.
Säästä gigatavua: estää mitä et tarvitse#
def block(route):
if route.request.resource_type in {"image", "media", "font", "stylesheet"}:
return route.abort()
return route.continue_()
page.route("**/*", block)await page.route("**/*", (route) => {
const t = route.request().resourceType();
return ["image", "media", "font", "stylesheet"].includes(t) ? route.abort() : route.continue();
});Renderöity sivu voi painaa 3-5 Mt, sen HTML ja API kutsut muutaman sadan kilotavun verran.Per GB verkossa tämä yksi sääntö vähentää laskua 80-90 %.
Tarkista ja vianmääritys#
- Avaa ensin IP-echo palvelu ja tarkista maa; katso sitten geolocation haku kaupunkiin.
- A
net::ERR_TUNNEL_CONNECTION_FAILEDtaiERR_PROXY_CONNECTION_FAILEDKäynnistyksen yhteydessä tarkoittaa, että tunnistetiedot tai parametri ovat väärät; testaa sama URL-osoite cURL:llä lukeaksesi yhdyskäytävän koodin. - WebRTC on oletusarvoisesti poistettu käytöstä Playwright-konteksteissa vain, jos estät sen; lisää
--disable-webrtcTyyli kovettuminen tai estää STUN kun yksityisyys on tärkeää.
Ihmiset kysyvät kysymyksiä#
Voiko jokaisella välilehdellä olla eri välityspalvelin?
Jokainen konteksti voi jakaa välityspalvelimensa. Luo yksi konteksti istuntoa tai maata kohti. Luo yksi välityspalvelin jokaiselle välilehdelle.
Tukeeko Playwright SOCKS5-välityspalvelimia todennuksella?
Chromium ei hyväksy SOCKS5-tunnistetietoja; käytä HTTP-välityspalvelinta portilla 9000 käyttäjänimellä ja salasanalla tai lisää palvelimesi IP-osoite valkoiselle listalle ja käytä osoitetta socks5://res.proxy-cyber.com:9001 ilman tunnistetietoja.