Виграй 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-сесії тривалістю до 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