Перейти до вмісту
Guides 3 хв читання 767 переглядів

Використання проксі у Python з Playwright

Налаштування проксі у Playwright для Python: HTTP та SOCKS5 проксі, автентифікація, контексти браузера та обхід антиботів.

Використання проксі у Python з Playwright

Використання проксі в Python з Playwright

Playwright та проксі

Playwright — це фреймворк для автоматизації браузера від Microsoft, що підтримує Chromium, Firefox та WebKit. Версія Playwright для Python має вбудовану підтримку проксі на рівні браузера та для окремих контекстів.

Встановлення

pip install playwright
playwright install  # downloads browsers

Базова конфігурація проксі

HTTP-проксі

from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    browser = p.chromium.launch(
        proxy={
            "server": "http://proxy_ip:port"
        }
    )
    page = browser.new_page()
    page.goto("https://httpbin.org/ip")
    print(page.content())
    browser.close()

З автентифікацією

from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    browser = p.chromium.launch(
        proxy={
            "server": "http://proxy_ip:port",
            "username": "user",
            "password": "pass"
        }
    )
    page = browser.new_page()
    page.goto("https://httpbin.org/ip")
    print(page.content())
    browser.close()

SOCKS5-проксі

browser = p.chromium.launch(
    proxy={"server": "socks5://proxy_ip:port"}
)

Асинхронний режим

import asyncio
from playwright.async_api import async_playwright

async def main():
    async with async_playwright() as p:
        browser = await p.chromium.launch(
            proxy={
                "server": "http://proxy_ip:port",
                "username": "user",
                "password": "pass"
            }
        )
        page = await browser.new_page()
        await page.goto("https://httpbin.org/ip")
        content = await page.content()
        print(content)
        await browser.close()

asyncio.run(main())

Проксі на рівні контексту

Playwright дозволяє встановлювати різні проксі для різних контекстів (профілів) в одному браузері:

from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    browser = p.chromium.launch()

    # Контекст 1 — проксі США
    context1 = browser.new_context(
        proxy={
            "server": "http://us_proxy:port",
            "username": "user",
            "password": "pass"
        }
    )

    # Контекст 2 — проксі Німеччини
    context2 = browser.new_context(
        proxy={
            "server": "http://de_proxy:port",
            "username": "user",
            "password": "pass"
        }
    )

    page1 = context1.new_page()
    page2 = context2.new_page()

    page1.goto("https://httpbin.org/ip")
    page2.goto("https://httpbin.org/ip")

    print("US:", page1.content())
    print("DE:", page2.content())

    browser.close()

Це потужна функція: один браузер, кілька контекстів з різними проксі та відбитками.

Обхід проксі для певних доменів

browser = p.chromium.launch(
    proxy={
        "server": "http://proxy_ip:port",
        "bypass": "localhost,*.local,example.com"
    }
)

Домени зі списку обходу доступні безпосередньо, минаючи проксі.

Headless та Headed режими

# Headless (без графічного інтерфейсу) — для скрапінгу
browser = p.chromium.launch(headless=True, proxy={"server": "http://proxy:port"})

# Headed (з графічним інтерфейсом) — для налагодження
browser = p.chromium.launch(headless=False, proxy={"server": "http://proxy:port"})

Робота з різними браузерами

Playwright підтримує три рушії:

# Chromium
browser = p.chromium.launch(proxy=proxy_config)

# Firefox
browser = p.firefox.launch(proxy=proxy_config)

# WebKit (Safari)
browser = p.webkit.launch(proxy=proxy_config)

Усі три підтримують проксі ідентично.

Режим невидимості та обхід анти-ботів

Playwright виявляється анти-бот системами. Щоб обійти це:

playwright-stealth

pip install playwright-stealth
from playwright.sync_api import sync_playwright
from playwright_stealth import stealth_sync

with sync_playwright() as p:
    browser = p.chromium.launch(proxy={"server": "http://proxy:port"})
    page = browser.new_page()
    stealth_sync(page)  # застосовує патчі невидимості
    page.goto("https://target-site.com")

Рекомендації щодо обходу

  1. Використовуйте резидентні або мобільні проксі
  2. Встановіть реалістичний User-Agent
  3. Налаштуйте розмір області перегляду (viewport)
  4. Додайте затримки між діями
  5. Імітуйте рухи миші та прокручування

Знімки екрана та PDF через проксі

page.goto("https://example.com")
page.screenshot(path="screenshot.png", full_page=True)
page.pdf(path="page.pdf")

Перехоплення запитів

def handle_route(route):
    # Зміна запитів
    headers = route.request.headers
    headers["X-Custom-Header"] = "value"
    route.continue_(headers=headers)

page.route("**/*", handle_route)
page.goto("https://example.com")

Практичний приклад: Скрапінг з ротацією

import asyncio
from playwright.async_api import async_playwright
import random

PROXIES = [
    {"server": "http://proxy1:port", "username": "u", "password": "p"},
    {"server": "http://proxy2:port", "username": "u", "password": "p"},
    {"server": "http://proxy3:port", "username": "u", "password": "p"},
]

async def scrape_page(playwright, url):
    proxy = random.choice(PROXIES)
    browser = await playwright.chromium.launch(proxy=proxy)
    page = await browser.new_page()
    try:
        await page.goto(url, timeout=30000)
        title = await page.title()
        return title
    except Exception as e:
        return f"Error: {e}"
    finally:
        await browser.close()

async def main():
    urls = [f"https://example.com/page/{i}" for i in range(10)]
    async with async_playwright() as p:
        tasks = [scrape_page(p, url) for url in urls]
        results = await asyncio.gather(*tasks)
        for url, result in zip(urls, results):
            print(f"{url}: {result}")

asyncio.run(main())

Висновок

Playwright — це потужний інструмент для роботи з проксі в Python. Підтримка проксі на рівні контексту дозволяє запускати кілька сесій з різними IP в одному браузері. У поєднанні з патчами невидимості та резидентними проксі, Playwright є ефективним для скрапінгу захищених веб-сайтів.

Оновлено: 06.03.2026
Назад до категорії

Читайте також

Guides 2 хв

Проксі для Nike SNKRS: купуйте лімітовані релізи та створюйте безліч акаунтів

Використовуйте residential або mobile проксі для Nike SNKRS, щоб брати участь у розіграшах з кількох акаунтів, обходити IP-ліміти та купувати лімітовані дропи без банів. Який тип обрати та як налаштувати GProxy.

Guides 2 хв

Як налаштувати проксі на iPhone (Wi-Fi та SOCKS5)

Налаштуйте проксі на iPhone через стандартні параметри Wi-Fi (HTTP/HTTPS) або додаток для проксі, як-от Shadowrocket, для SOCKS5 та стільникового зв'язку. Покрокове налаштування iOS та обмеження, про які варто знати.

Guides 3 хв

Проксі для Tinder: мультиакаунтинг та уникнення банів

Використовуйте мобільні або резидентські проксі для Tinder, щоб керувати кількома профілями та уникати IP shadowbans. Чому мобільні виграють, як усе налаштувати та чому сам по собі проксі не змінить ваше місто.

Guides 2 хв

Проксі для StockX: моніторинг цін та керування акаунтами

Використовуйте residential, ISP або mobile проксі для StockX, щоб моніторити ціни, керувати кількома акаунтами та купувати дропи без банів. Ось який тип обрати та як налаштувати GProxy.

Guides 3 хв

Проксі для OpenAI API: доступ, ліміти (Rate Limits) та налаштування

Маршрутизуйте OpenAI API через residential або ISP проксі, щоб отримати доступ до підтримуваних регіонів, уникнути 429 rate limits та ізолювати акаунти. Який проксі використовувати плюс приклади налаштування Python.

Guides 1 хв

Налаштування проксі в Cypress для E2E тестування

Налаштування проксі в Cypress: змінні HTTP_PROXY, cy-proxy-middleware та тестування геозалежного контенту.

Спробуйте наші проксі

20,000+ проксі в 100+ країнах світу

support_agent
GProxy Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.