פרוקסי ברמת השקה#
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();השתמש במזהה הפעלה נפרד עבור כל זרימת עבודה עצמאית, שבה השער שהוקצה תומך בו. אשר את הפרמטרים המותרים של משך ומיקום בפרטי החיבור שלך. התקן מגורים יכול להתנתק לפני משך הזמן המבוקש; הפעלה דביקה אינה ערובה לאותו IP במשך ימים. עבור כתובת קבועה, השווה מוצר סטטי ייעודי.
פרוקסי לכל הקשר#
כדי להפעיל מספר מדינות או הפעלות בדפדפן אחד, הפעל עם פרוקסי של מציין מיקום ותן לכל הקשר משלו. כרום צריך את הפרוקסי ברמת ההשקה עבור פרוקסי לכל הקשר שיש לכבד.
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" } });התאם את ההקשר ליציאה#
תן לכל הקשר את האזור המקומי ואת אזור הזמן של המדינה שלה, כך IP, שפה ושעון מסכימים: locale=\"de-DE\", timezone_id=\"Europe/Berlin\" עבור ההקשר של ברלין. התאמות שגויות הן אות בוט חזק יותר מאשר ה-IP עצמו.
שמור ג'יגה-בתים: לחסום את מה שאתה לא צריך#
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();
});דף משוב יכול לשקול 3 עד 5 MB; HTML ו- API שלה קורא כמה מאות קילובייט. ברשת לכל GB כלל אחד זה חותך את הצעת החוק ב 80 עד 90%.
אימות ופתרון בעיות#
- פתח שירות IP-הד ראשון ולבדוק את המדינה; ואז להסתכל על תצפית מיקום גיאוגרפי עבור העיר.
- A
net::ERR_TUNNEL_CONNECTION_FAILEDאוERR_PROXY_CONNECTION_FAILEDבהפעלה פירושו אישורים או פרמטר טועים; בדוק את אותה כתובת אתר עם כתובת URL כדי לקרוא את קוד השער. - WebRTC מושבת כברירת מחדל בהקשרים של Playwright רק אם אתה חוסם אותו; הוסף
--disable-webrtcסגנון התקשות או לחסום הלם כאשר פרטיות חשובה.
שאלות שאנשים שואלים#
האם לכל כרטיסייה יש פרוקסי אחר?
כל הקשר יכול; כרטיסיות (דפים) בתוך הקשר לשתף פרוקסי שלה. צור הקשר אחד לכל הפעלה או מדינה.
האם Playwright תומך ב-SOCKS5 פרוקסי עם אימות?
Chromium אינו מקבל אישורי SOCKS5; השתמש בפרוקסי HTTP בנמל 9000 עם שם משתמש וסיסמה, או ברשימה לבנה IP השרת שלך ולהשתמש גרביים5://res.proxy-cyber.com:9001 ללא אישורים.