Настройка прокси в Playwright

Playwright — это современный фреймворк для веб-скрейпинга и автоматизации, который поддерживает несколько языков программирования и хорошо интегрируется с прокси CyberYozh для дополнительной безопасности и стабильности сессий. Здесь вы узнаете, как настроить Playwright и обеспечить качественное выполнение задач.

Подготовка: выбор прокси для использования с Playwright

Перед настройкой интеграции прокси с Playwright необходимо построить правильную инфраструктуру для скрейпинга/автоматизации. Тип прокси определяет уровень доверия, стабильность сессий, скорость и то, как платформы воспринимают ваш трафик.

Мобильные прокси: данные социальных сетей и точный геотаргетинг

Мобильные прокси имеют самый высокий уровень доверия среди всех типов прокси, что делает их рекомендуемым выбором для скрейпинга социальных сетей и мобильных приложений, таких как Instagram, TikTokи Snapchat

ℹ️

Мобильные прокси CyberYozh предлагают широкие возможности настройки для точного геотаргетинга, настроек отпечатков и неограниченного трафика; идеальны, когда вам нужно, чтобы Playwright эмулировал реального мобильного пользователя.

Резидентские прокси: общий скрейпинг данных и автоматизация

Резидентские прокси делятся на два типа в зависимости от вашего сценария использования:

  • Статичные резидентские прокси предоставляют фиксированный резидентский IP из определённой страны, воспринимаемый платформами как обычный домашний интернет-пользователь. Они идеальны для работы со связанными аккаунтами.

  • Ротационные резидентские прокси используют пул из более чем 50 млн IP-адресов в более чем 100 странах, меняя адреса при каждом запросе или сессии. Они лучше всего подходят для массовой автоматизации и крупномасштабного веб-скрейпинга с Playwright

ℹ️

Выбирайте статичные резидентские IP для долгосрочного управления аккаунтами по схеме 1 IP = 1 аккаунт, в то время как ротационные IP требуются для всех массовых веб-активностей с правильной стратегией ротации IP на основе каждого конкретного случая использования.

Прокси датацентра: открытые базы данных и тестирование приложений

Прокси датацентра обеспечивают самую высокую скорость соединения, но ассоциируются с нерезидентским, ботоподобным трафиком. Они хорошо работают для скрейпинга открытых баз данных, тестирования API и высокоскоростных задач, где платформы применяют минимальное обнаружение ботов, но могут быть быстро ограничены на социальных платформах, таких как Reddit или LinkedIn.

Дополнительный инструмент: IP Checker для обеспечения качества

CyberYozh предлагает IP Checker , который проверяет каждый IP-адрес по нескольким базам данных о мошенничестве, возвращая оценку доверия и полную историю. Перед переключением на новый IP в вашей Playwright-сессии проверьте его через чекер, чтобы убедиться, что он не вызовет блокировку.

IP Check results
⚙️

Получите доступ к CyberYozh API , чтобы автоматизировать ротацию IP и проверять каждый входящий IP-адрес перед ротацией, обеспечивая его качество.

Начало установки Playwright: Выбор языка

Playwright поддерживает четыре языка. Прежде чем приступить к установке Playwright и настройке прокси, выберите язык, который подходит вашему стеку. В этом гайде используется Python как наиболее распространённый выбор для работы с прокси, но все четыре варианта рассмотрены в таблице и кратких инструкциях ниже.

Язык

Ключевые отличия

Основные сценарии использования

Когда выбирать

Node.js (JS/TS)

Язык Playwright по умолчанию; поддержка TypeScript из коробки; самое большое сообщество и документация

Сквозное тестирование, автоматизация браузера, frontend CI/CD

Ваша команда работает на JS/TS, или вам нужны наиболее зрелые инструменты

Python

Наиболее широко используется в скрейпинге/ML; асинхронность через asyncio; интегрируется с Requests, Scrapy

Веб-скрейпинг, конвейеры данных, автоматизация прокси, сбор данных для ML

Вам нужен интенсивный скрейпинг через прокси или интеграция с data science

.NET (C#)

Распространение через NuGet; строгая типизация, хорошо подходит для корпоративного QA

Корпоративная автоматизация тестирования, .NET-приложения

Ваша организация использует .NET-стек

Java

Распространение через Maven/Gradle; интеграция с JUnit

Корпоративные Java-приложения, тестирование, связанное с Android

Ваш проект основан на Java или требует экосистемы JVM

Node.js

Язык Playwright по умолчанию и наиболее полно документированный. TypeScript поддерживается нативно: Playwright устанавливается с помощью npm, без дополнительной настройки.

bash
npm init playwright@latest

Python

Основной язык для задач Playwright с прокси, скрейпинга и автоматизации данных. Требует Python 3.8+ и обычно устанавливается через PyPI (pip).

bash
pip install playwright

playwright install

.NET (C#)

Распространяется как NuGet-пакет. Требует PowerShell (pwsh) для выполнения шага установки браузера.

bash
dotnet new console -n PlaywrightDemo

cd PlaywrightDemo

dotnet add package Microsoft.Playwright

dotnet build

pwsh bin/Debug/netX/playwright.ps1 install 

Java

Распространяется как модуль Maven (mvn). Добавьте зависимость в ваш pom.xml в Maven, и браузеры загрузятся автоматически при первой компиляции.

xml
<dependency>

  <groupId>com.microsoft.playwright</groupId>

  <artifactId>playwright</artifactId>

  <version>1.59.0</version>

</dependency> 

И затем выполните команду:

bash
mvn compile exec:java -D exec.mainClass="org.example.App"

Настройка прокси Playwright с Python​

Здесь мы рассмотрим общий процесс развертывания сессии скрейпинга Playwright с прокси CyberYozh. Хотя стандартным языком Playwright является Node.js/TypeScript, в нашем примере мы будем использовать Python , поскольку Playwright с Python широко применяется для веб-автоматизации, скрейпинга и других задач, связанных с прокси. Если вам нужно использовать TypeScript или у вас есть конкретный случай, требующий C# или Java, просто изучите соответствующую версию документации Playwright — код довольно легко адаптировать.

💡

Прокси-сервер Playwright — это сетевой посредник, который перенаправляет запросы вашего браузера через другой IP-адрес. Playwright передает конфигурацию прокси непосредственно при запуске браузера или на уровне контекста, направляя весь трафик через указанный сервер. 

1. Получите прокси для вашей задачи

Войдите в свой аккаунт CyberYozh, перейдите в раздел Мои проксии выберите тип прокси, подходящий для вашей задачи (мобильные, резидентские статичные, резидентские ротационные, прокси датацентра). 

После покупки откройте карточку прокси, нажмите Сгенерировать учетные данные, выберите режим ротации (Random IP, Short Session или Long Session) и перейдите к хосту, порту, имени пользователя и паролю. 

Эти учетные данные будут использоваться на протяжении всей настройки.

2. Скачайте и установите Playwright

Установите библиотеку Playwright и её бинарные файлы браузеров через PyPI:

bash
pip install playwright

playwright install

Это загрузит бинарные файлы Chromium, Firefox и WebKit. Для скрейпинга стандартным выбором является Chromium.

3. Организуйте структуру проекта

Создайте отдельную папку проекта (например, scraper/). Храните учетные данные отдельно от кода и определите четкий путь для сохранения собранных данных:

  1. - документ .env для учетных данных прокси (всегда добавляйте в .gitignore)

  2. - scraper.py как основной скрипт Playwright

  3. - requirements.txt для зависимостей

  4. папка output/ для собранных данных (CSV/JSON) 

4. Добавьте конфигурацию прокси в файл .env

Откройте файл .env в VS Code или любом редакторе и скопируйте учетные данные CyberYozh. Всегда добавляйте .env в ваш .gitignore, чтобы предотвратить утечку учетных данных в репозитории системы контроля версий.

HTTP_PROXY=http://username:password@proxy-server-ip:host

SOCKS5_PROXY=socks5://username:password@proxy-server-ip:host 

Для настройки прокси SOCKS5 в Playwright используйте схему socks5:// . Для стандартного использования HTTP-прокси в Playwright используйте http:// схему. Убедитесь, что указали правильные порты из панели управления CyberYozh. Если вы используете API CyberYozh, здесь также необходимо указать ваш API-ключ.

CYBERYOZH_API_KEY=Ваш_API_URL_ключ  

5. Создайте скрипт для скрейпинга/автоматизации

Создайте тестовый файл Python с использованием Playwright. Он должен иметь примерно следующую структуру:

  1. Создание сущностей браузера и контекста с настройками прокси

  2. Настройка автоматической ротации и проверки IP через API CyberYozh

  3. Переход на целевой сайт и выполнение скрейпинга через библиотеку Requests

  4. Настройка обработки ошибок

  5. Указание выходной папки для собранных данных 

Приведённый ниже скрипт реализует полную настройку прокси Playwright в Python: сущность браузера, сущность контекста с аутентификацией прокси Playwright, автоматическую ротацию IP через API CyberYozh, выполнение запросов, обработку ошибок и вывод в файл.

python
import asyncio
import os
import json
import requests
from dotenv import load_dotenv
from playwright.async_api import async_playwright

load_dotenv()

PROXY_URL = os.getenv("HTTP_PROXY"# or SOCKS5, from the .env document
CYBERYOZH_API_KEY = os.getenv("CYBERYOZH_API_KEY") # API key from the .env document
TARGET_URL = "https://httpbin.org/ip" # the website to scrape; here is the test one
OUTPUT_FILE = "output/results.json" # output folder


def check_ip_quality(ip: str) -> bool:

    """Use CyberYozh IP Checker API to verify trust score before rotating."""

    try:

        response = requests.get(
            f"https://app.cyberyozh.com/api/v1/ip-check?ip={ip}",
            headers={"Authorization": f"Bearer {CYBERYOZH_API_KEY}"},
            timeout=5
        )

        score = response.json().get("fraud_score", 100)
        return score < 50  # Accept IPs with fraud score below 50

    except Exception:

        return True  # Allow on API error


async def scrape(proxy_url: str) -> dict:

    """Run a single Playwright scraping session with proxy."""

    # Parse proxy credentials for Playwright proxy authentication

    from urllib.parse import urlparse

    parsed = urlparse(proxy_url)

    proxy_config = {
        "server": f"{parsed.scheme}://{parsed.hostname}:{parsed.port}",
        "username": parsed.username,
        "password": parsed.password,
    }



    async with async_playwright() as p:

        # Browser entity (headless to save traffic): launch with proxy server

        browser = await p.chromium.launch(headless=True)
        # Context entity: proxy settings applied per context

        context = await browser.new_context(proxy=proxy_config)
        page = await context.new_page()




        try:

            await page.goto(TARGET_URL, timeout=30000)
            content = await page.inner_text("body")
            result = json.loads(content)
            return {"status": "ok", "ip": result.get("origin")}

        except Exception as e:

            return {"status": "error", "error": str(e)}

        finally:

            await context.close()
            await browser.close()


async def main():

    results = []

    for i in range(5):

        print(f"Request {i+1}: using proxy {PROXY_URL}")
        data = await scrape(PROXY_URL)
        print(f"  → IP: {data.get('ip')} | Status: {data.get('status')}")
        results.append(data)

    os.makedirs("output", exist_ok=True)

    with open(OUTPUT_FILE, "w") as f:

        json.dump(results, f, indent=2)

    print(f"Results saved to {OUTPUT_FILE}")


asyncio.run(main())
ℹ️

См. также связанный гайд: Настройка ротации прокси в Python

6. Запустите тест и выполните ротацию прокси

Запустите скрейпер из корневой директории проекта:

bash
python scraper.py

Убедитесь, что каждый запрос логирует разный IP-адрес (подтверждая активную ротацию) и что файл output/results.json заполняется. Используйте API CyberYozh для автоматической ротации и автоматических проверок качества через IP Checker: прокси с высоким показателем мошенничества будут отклонены перед следующим циклом ротации. 

Итоги: использование Playwright с инфраструктурой CyberYozh

С настроенными прокси Playwright и активными учётными данными CyberYozh вы можете выполнять мультицелевой скрейпинг, геотаргетированную автоматизацию и рабочие процессы управления аккаунтами в масштабе, направляя каждую сессию браузера через чистые резидентские или мобильные IP с проверкой показателя мошенничества, выводя при этом структурированные данные в выбранном формате.

Часто задаваемые вопросы

Что такое прокси-сервер Playwright и зачем он нужен?

Прокси-сервер Playwright направляет трафик браузера Playwright через промежуточный IP-адрес, маскируя ваш источник. Это предотвращает блокировки по IP, обходит географические ограничения и делает автоматизированные сессии похожими на трафик обычных пользователей.

Как установить прокси в Playwright?

Отдельного шага установки нет. После выполнения Playwright install передайте учётные данные прокси через параметр proxy={"server": "...", "username": "...", "password": "..."} в chromium.launch() или browser.new_context().

Как использовать Playwright с аутентификацией прокси?

Передайте ключи «username» и «password» внутри словаря proxy при запуске браузера или создании контекста. Playwright изначально поддерживает аутентификацию прокси Playwright без необходимости дополнительных библиотек.

Поддерживает ли Playwright прокси SOCKS5?

Да. Используйте socks5:// в URL сервера с корректным номером порта.

В чём разница между прокси Playwright, установленными на уровне браузера и на уровне контекста?

Прокси на уровне браузера применяются ко всем контекстам и страницам. Прокси на уровне контекста позволяют использовать разные прокси Playwright для каждой сессии, что обеспечивает работу с несколькими аккаунтами, где каждый контекст использует отдельный IP.

Какой тип прокси CyberYozh лучше всего подходит для веб-скрейпинга на Python с прокси Playwright?

Используйте ротационные резидентские прокси для массового скрейпинга (пул 50M+ IP, ротация на каждый запрос) и мобильные прокси для социальных сетей. Прокси датацентра подходят для открытых баз данных, требующих скорости.

Как автоматически ротировать прокси в Playwright?

С ротационными резидентскими прокси CyberYozh ротация встроена: используйте суффикс -res-any в имени пользователя, и каждый новый запрос получит свежий IP. Ручное управление пулом не требуется.

Могу ли я использовать прокси Playwright с asyncio Python для параллельного скрейпинга?

Да. Используйте async_playwright с asyncio. Каждый вызов browser.new_context(proxy=...) может получить разную конфигурацию прокси, что позволяет запускать параллельные сессии с разными IP.

Почему мой скрейпер Playwright всё ещё блокируется даже с прокси?

Блокировки происходят, когда IP имеют высокий показатель мошенничества, ротация слишком агрессивна или отпечатки браузера непоследовательны. Проверьте качество IP с помощью CyberYozh IP Checker и рассмотрите возможность использования прокси вместе с антидетект-браузером для целей с высоким уровнем безопасности.

Как безопасно использовать переменные окружения для учётных данных прокси Playwright?

Сохраните учётные данные в файле .env (добавленном в .gitignore), загрузите их с помощью python-dotenv и передайте в chromium.launch(). Никогда не вписывайте прокси-строки напрямую в исходный код и не коммитьте их в систему контроля версий.