Lans- level proxy#
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();Her bağımsız iş için ayrı bir oturum tanımlayıcısı kullanın, atanan ağ geçidinin desteklediği yer. Bağlantı ayrıntılarınızda izin verilen süre ve yer parametrelerini onaylayın. Bir konut cihazı talep edilen süreden önce kesebilir; bir çubuk oturumu aynı IP'nin aynı zamanda belirli bir adres için bir garanti değildir, özel bir statik ürünle karşılaştırın.
Per-context proxy#
Bir tarayıcıda birkaç ülke veya seans çalıştırmak için, bir yer proxy sahibi ile başlayın ve her bir bağlamı kendi başına verin. Chromium, per-context proxyleri için başlatılmalıdır.
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" } });Çıkışa bağlamı paylaşın#
Ülkesinin yerel ve zaman bölgesine her bağlam verin, bu yüzden IP, dil ve saat aynı fikirde: locale=\"de-DE\", timezone_id=\"Europe/Berlin\" Berlin bağlamı için. Mismatches IP'nin kendisinden daha güçlü bir bot sinyalidir.
Save gigabays: İhtiyacınız olmayan şeyleri bloklayın#
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();
});Verilen bir sayfa 3 ila 5 MB ağırlığında olabilir; HTML ve API birkaç yüz kilobay çağırmaktadır.Bu tek kural faturayı% 90 azaltmaktadır.
Verify ve sorun#
- Önce bir IP-echo hizmeti açın ve ülkeyi kontrol edin; sonra şehir için bir geolok görünümüne bakın.
- A
net::ERR_TUNNEL_CONNECTION_FAILEDveya veyaERR_PROXY_CONNECTION_FAILEDBaşlangıçta, kimlik veya parametre yanlış olur; ağ geçidi kodunu okumak için aynı URL'yi test edin. - WebRTC, Playwright bağlamda varsayılan olarak devre dışı bırakılır, ancak bunu engellerseniz; ekle
--disable-webrtcGizli konularda STUN'u zorlayan veya bloklayın.
Soru: İnsanlar soruyor#
Her sekmenin farklı bir proxyu olabilir mi?
Her bağlamda, bir bağlamdaki sekmeler (sayfalar) oturum veya ülke için bir bağlam oluşturun.
Playwright doğrulama ile Seiko5 proxy'leri destekliyor mu?
Kromium, ETF5 kimliklerini kabul etmez; HTTP proxy'sini kullanıcı ve şifre ile port 9000'de kullanın veya sunucu IP'nizi beyaz listeleyin ve çorapları kullanın 5 http://res.proxy-cyber.com:Kredisiz Muhasebe.