Выиграй 1 ТБ резидентского трафика, iPhone 18 Pro Max + ещё 33 приза$50 на баланс = 1 билетПрисоединиться
Бизнес

Как настроить прокси в Playwright для парсинга

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

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

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

Мобильные прокси: данные социальных сетей, точный геотаргетинг и поисковая выдача Google (SERP)

Мобильные прокси обладают абсолютно наивысшим уровнем доверия среди всех типов прокси. Они являются обязательным выбором для извлечения данных из социальных сетей, таких как Instagram, TikTok и Snapchat. Вы также можете использовать инфраструктуру мобильных LTE/5G прокси для многопоточного, круглосуточного парсинга поисковой выдачи Google (SERP). Мобильные операторы используют технологию CGNAT, скрывая тысячи реальных пользователей смартфонов за одним IP-адресом. Google не может заблокировать эти узлы без отключения от сети реальных людей. Данная архитектура предоставляет безлимитный трафик, позволяя бесконечно масштабировать сбор данных без оплаты за каждый загруженный гигабайт.

ℹ️

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

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

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

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

  • Ротационные резидентские прокси опираются на инфраструктуру из 100M+ IP-адресов в 195+ странах. Вы можете менять адреса при каждом запросе или поддерживать липкие сессии (sticky sessions) длительностью до 24 часов. Они формируют необходимый фундамент для массовой автоматизации, масштабного веб-скрейпинга и обеспечения стабильного сетевого контекста для современных ИИ-агентов (таких как Crawl4AI и Open Scraper).

ℹ️

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

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

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

Дополнительный инструмент: Оценка рисков до выполнения (Risk Evaluation Before Execution)

CyberYozh предоставляет IP Checker, который сканирует каждый IP-адрес по главным антифрод-базам для возврата строгого показателя риска (Fraud Score) и полной истории. Внедрите пайплайн «Оценка рисков до выполнения» (Risk Evaluation Before Execution). Прогоните IP через чекер перед инициализацией экземпляра браузера. Это позволит оценить ваш реальный уровень риска и поможет поддерживать высокий показатель успешных операций (Operational Success Rate), полностью заменяя ложные гарантии «стопроцентного обхода банов».

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, и браузеры загрузятся автоматически при первой компиляции.

bash
<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, выполнение запросов, обработку ошибок и вывод в файл.

bash
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 с проверкой показателя мошенничества, выводя при этом структурированные данные в выбранном формате.

FAQ по настройке прокси в Playwright