Proksi tahap-lunch#
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();Gunakan pengenalpasti sesi yang berbeda untuk setiap alur kerja independen, di mana gateway yang ditugaskan mendukungnya. Konfirmasi durasi dan parameter lokasi yang diizinkan dalam rincian koneksi Anda. Sebuah perangkat pemukiman dapat memutuskan sebelum durasi yang diminta; sesi lengket bukan jaminan IP yang sama selama berhari-hari. Untuk alamat tetap, bandingkan produk statik berdedikasi.
Proksi per-konteks pers#
COTHO untuk menjalankan beberapa negara atau sesi dalam satu peramban, peluncuran dengan proksi pemegang tempat dan memberikan setiap konteksnya sendiri. Chromium membutuhkan proksi tahap peluncuran untuk proksi per-konteks yang akan dihormati.
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" } });Padankan konteks ke pintu keluar#
Berikan setiap konteks lokal dan zona waktu negaranya, jadi IP, bahasa dan jam setuju: locale=\"de-DE\", timezone_id=\"Europe/Berlin\" Salah adalah sinyal bot yang lebih kuat daripada IP itu sendiri.
Simpan gigabytes: blok apa yang Anda tidak perlu#
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();
});Halaman yang dirender dapat berbobot 3 hingga 5 MB; HTML dan API-nya memanggil beberapa ratus kilobyte. Pada jaringan per-GB aturan tunggal ini memotong RUU dengan 80 hingga 90 %.
WOW WOW WOVE dan WUBShooting#
- Ia membuka layanan IP-echo terlebih dahulu dan memeriksa negara; kemudian melihat pencarian geolokasi kota.
- A
net::ERR_TUNNEL_CONNECTION_FAILEDOR atau ORANGERR_PROXY_CONNECTION_FAILEDPeluncuran berarti kelayakan atau sebuah parameter salah; uji URL yang sama dengan cURL untuk membaca kode gateway. - WebRTC dilumpuhkan secara default dalam konteks Playwright hanya jika anda memblokirnya; tambah
--disable-webrtcGaya gaya gaya gaya ulet atau menghalangi STUN ketika masalah privasi.
Pertanyaan orang#
Apakah setiap tab dapat memiliki proksi yang berbeda?
Setiap konteks dapat; tab (halaman) di dalam konteks berbagi proksinya. Cipta satu konteks per sesi atau negara.
Apakah SOCKS5 mendukung proksi Playwright dengan otentikasi?
Chromium tidak menerima kelayakan SOCKS5; gunakan proksi HTTP pada port 9000 dengan nama pengguna dan kata sandi, atau daftar putih IP server Anda dan menggunakan kaus kaki5://res.proxy-cyber.com:9001 tanpa kelayakan.