Proxy auf der Startstufe#
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();Verwenden Sie für jeden unabhängigen Workflow eine eindeutige Sitzungskennung, sofern das zugewiesene Gateway dies unterstützt. Bestätigen Sie die zulässigen Dauer- und Standortparameter in Ihren Verbindungsdetails. Ein Heimgerät kann die Verbindung vor Ablauf der angeforderten Dauer trennen; Eine Sticky-Sitzung ist keine Garantie für die gleiche IP-Adresse über mehrere Tage hinweg. Vergleichen Sie für eine feste Adresse ein dediziertes statisches Produkt.
Pro-Kontext-Proxys#
Um mehrere Länder oder Sitzungen in einem Browser auszuführen, starten Sie mit einem Platzhalter-Proxy und geben Sie jedem Kontext seinen eigenen. Chromium benötigt den Proxy auf Startebene, damit Pro-Kontext-Proxys berücksichtigt werden.
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" } });Passen Sie den Kontext zum Ausgang an#
Geben Sie jedem Kontext das Gebietsschema und die Zeitzone seines Landes an, damit IP, Sprache und Uhr übereinstimmen: locale=\"de-DE\", timezone_id=\"Europe/Berlin\" für den Berliner Kontext. Nichtübereinstimmungen sind ein stärkeres Bot-Signal als die IP selbst.
Gigabyte speichern: Blockieren Sie, was Sie nicht brauchen#
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();
});Eine gerenderte Seite kann 3 bis 5 MB wiegen; seine HTML- und API-Aufrufe betragen einige hundert Kilobyte. In einem Pro-GB-Netzwerk senkt diese einzige Regel die Rechnung um 80 bis 90 %.
Verifizieren und Troubleshoot#
- Öffnen Sie zunächst einen IP-Echo-Dienst und überprüfen Sie das Land. Schauen Sie sich dann eine Geolokalisierungssuche für die Stadt an.
- A
net::ERR_TUNNEL_CONNECTION_FAILEDoderERR_PROXY_CONNECTION_FAILEDbeim Start bedeutet, dass Anmeldeinformationen oder ein Parameter falsch sind; Testen Sie dieselbe URL mit cURL, um den Gateway-Code zu lesen. - WebRTC ist in Playwright-Kontexten standardmäßig nur dann deaktiviert, wenn Sie es blockieren; hinzufügen
--disable-webrtcStyle-Hardening oder Blockieren von STUN, wenn Privatsphäre wichtig ist.
Fragen, die Menschen stellen#
Kann jeder Tab einen anderen Proxy haben?
Jeder Kontext kann; Registerkarten (Seiten) innerhalb eines Kontexts teilen sich ihren Proxy. Erstellen Sie einen Kontext pro Sitzung oder Land.
Unterstützt Playwright SOCKS5-Proxys mit Authentifizierung?
Chromium akzeptiert keine SOCKS5-Anmeldeinformationen; Verwenden Sie den HTTP-Proxy auf Port 9000 mit Benutzername und Passwort oder setzen Sie Ihre Server-IP auf die Whitelist und verwenden Sie sock5://res.proxy-cyber.com:9001 ohne Anmeldeinformationen.