Перейти к содержимому

Как использовать proxy в Playwright: полное руководство

TL;DR

Настройте GProxy proxy с Playwright для автоматизации в различных браузерах. Поддерживается переключение proxy для каждого контекста, Chrome/Firefox/WebKit и встроенная аутентификация.

Язык: Python / JavaScript

Что вам понадобится

  • Python 3.8+ или Node.js 16+
  • Установленный Playwright (pip install playwright && playwright install)
  • Аккаунт GProxy с активным тарифным планом proxy
  • Знакомство с паттернами async/await

Пошаговая настройка

1

Установка Playwright

Установите Playwright и бинарные файлы браузеров

# Python
pip install playwright
playwright install chromium

# Node.js
npm install playwright
2

Запуск с proxy

Создайте контекст браузера с GProxy proxy

from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    browser = p.chromium.launch()
    context = browser.new_context(proxy={
        'server': 'http://proxy.gproxy.net:1000',
        'username': 'YOUR_USER',
        'password': 'YOUR_PASS'
    })
    page = context.new_page()
    page.goto('https://httpbin.org/ip')
    print(page.content())
3

Ротация на уровне контекста

Используйте разные proxy для каждого контекста для реализации ротации

countries = ['us', 'de', 'gb', 'fr']
for country in countries:
    ctx = browser.new_context(proxy={
        'server': 'http://proxy.gproxy.net:1000',
        'username': f'USER-country-{country}',
        'password': 'PASS'
    })
    page = ctx.new_page()
    page.goto('https://httpbin.org/ip')
    print(f'{country}: {page.text_content("body")}')
    ctx.close()
4

Эмуляция геопозиции

Комбинируйте proxy с локалью и часовым поясом для полной гео-симуляции

context = browser.new_context(
    proxy={'server': 'http://proxy.gproxy.net:1000',
           'username': 'USER-country-us', 'password': 'PASS'},
    locale='en-US',
    timezone_id='America/New_York',
    geolocation={'latitude': 40.7128, 'longitude': -74.0060},
    permissions=['geolocation']
)
5

Параллельный скрапинг

Собирайте данные с нескольких страниц одновременно, используя разные proxy

import asyncio
from playwright.async_api import async_playwright

async def scrape(browser, url, country):
    ctx = await browser.new_context(proxy={
        'server': 'http://proxy.gproxy.net:1000',
        'username': f'USER-country-{country}',
        'password': 'PASS'
    })
    page = await ctx.new_page()
    await page.goto(url)
    title = await page.title()
    await ctx.close()
    return title

Примеры кода

Python Sync API с GProxy · python
from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    browser = p.chromium.launch(headless=True)
    context = browser.new_context(
        proxy={
            'server': 'http://proxy.gproxy.net:1000',
            'username': 'YOUR_USER',
            'password': 'YOUR_PASS'
        }
    )
    page = context.new_page()
    page.goto('https://httpbin.org/ip')
    print('IP:', page.text_content('body'))
    context.close()
    browser.close()
Асинхронный параллельный парсинг · python
import asyncio
from playwright.async_api import async_playwright

async def scrape_page(browser, url, country):
    context = await browser.new_context(proxy={
        'server': 'http://proxy.gproxy.net:1000',
        'username': f'USER-country-{country}',
        'password': 'PASS'
    })
    page = await context.new_page()
    await page.goto(url, timeout=30000)
    data = await page.evaluate('() => document.title')
    await context.close()
    return {'url': url, 'country': country, 'title': data}

async def main():
    async with async_playwright() as p:
        browser = await p.chromium.launch()
        tasks = [
            scrape_page(browser, 'https://example.com', 'us'),
            scrape_page(browser, 'https://example.com', 'de'),
            scrape_page(browser, 'https://example.com', 'jp'),
        ]
        results = await asyncio.gather(*tasks)
        print(results)
        await browser.close()

asyncio.run(main())
Node.js с GProxy · javascript
const { chromium } = require('playwright');

(async () => {
  const browser = await chromium.launch();
  const context = await browser.newContext({
    proxy: {
      server: 'http://proxy.gproxy.net:1000',
      username: 'YOUR_USER',
      password: 'YOUR_PASS'
    }
  });

  const page = await context.newPage();
  await page.goto('https://httpbin.org/ip');
  console.log(await page.textContent('body'));

  await context.close();
  await browser.close();
})();

Почему Playwright — лучший выбор для скрапинга через proxy?

Playwright от Microsoft — это самый современный фреймворк для автоматизации браузеров, поддерживающий Chromium, Firefox и WebKit через единый API. Его ключевое преимущество для пользователей proxy: нативная поддержка proxy на уровне контекста. В отличие от Puppeteer и Selenium, вы можете устанавливать разные proxy для разных контекстов браузера без запуска новых экземпляров браузера. В сочетании с 10M+ резидентными IP от GProxy, это делает Playwright самым быстрым вариантом для параллельного гео-таргетированного скрапинга.

Настройка proxy для каждого контекста

Контексты браузера в Playwright — это легковесные изолированные среды, каждая из которых может иметь собственные настройки proxy. Создайте контекст с proxy от GProxy, выполните скрапинг, закройте его и создайте другой с другим proxy — и все это в рамках одного экземпляра браузера. Это значительно эффективнее, чем подход в Selenium или Puppeteer.

Встроенная аутентификация

Playwright обрабатывает аутентификацию HTTP proxy нативно через конфигурацию proxy. Передавайте имя пользователя и пароль напрямую в настройках proxy — никаких расширений браузера или обходных путей не требуется. Это стабильно работает в Chromium, Firefox и WebKit.

Поддержка нескольких браузеров

Тестируйте и собирайте данные с помощью разных браузерных движков, используя один и тот же код. Chromium для большинства задач, Firefox для сайтов, блокирующих автоматизацию на базе Chrome, и WebKit для имитации поведения Safari. Все они поддерживают proxy от GProxy через один и тот же API конфигурации.

Гео-таргетинг с Playwright

Комбинируйте таргетированные по странам proxy от GProxy со встроенными настройками геолокации и локали Playwright для полной симуляции местоположения. Установите proxy на US IP, локаль на en-US, часовой пояс на America/New_York и геолокацию на координаты Нью-Йорка для создания полностью согласованного профиля пользователя из США.

Параллельный скрапинг в масштабе

Архитектура Playwright поддерживает высокую конкурентность с минимальным потреблением ресурсов. Создавайте десятки контекстов браузера с разными proxy от GProxy, работающими параллельно внутри одного экземпляра браузера. Каждый контекст изолирован, имеет собственные куки, хранилище и proxy — это идеально подходит для крупномасштабного сбора данных.

Сценарии применения

Cross-Browser Testing

Тестируйте веб-сайты из разных локаций, используя Chromium, Firefox и WebKit с geo-targeted proxy.

Competitive Intelligence

Мониторьте сайты конкурентов в разных регионах с ротацией proxy для каждого контекста и эмуляцией локали.

Ad Verification

Проверяйте размещение рекламы и контент в разных странах, используя таргетированные резидентские IP.

Dynamic Content Scraping

Извлекайте данные с сайтов с большим количеством JavaScript с полным рендерингом браузера и надежной ротацией proxy.

Pro советы
Используйте контексты браузера вместо создания новых экземпляров браузера — они создаются в 10 раз быстрее и поддерживают proxy для каждого контекста. Комбинируйте proxy с параметрами locale, timezone и geolocation для полной гео-симуляции. Используйте route() для блокировки ресурсов вместо перехвата запросов для получения более чистого кода. Инструмент codegen в Playwright позволяет записывать взаимодействия и генерировать скрипты, совместимые с proxy.

FAQ

Могу ли я использовать разные прокси для каждой страницы? +
Да! Playwright поддерживает конфигурацию прокси для каждого контекста. Создайте новый контекст с отдельным proxy для каждой задачи — это ключевое преимущество Playwright перед Selenium и Puppeteer.
Работает ли Playwright с SOCKS5? +
Да, Playwright нативно поддерживает SOCKS5 прокси. Используйте 'socks5://host:port' в качестве URL сервера в конфигурации proxy.
Какой браузер использовать для скрапинга? +
Chromium для большинства задач. Firefox, если сайты блокируют ботов на базе Chrome. WebKit для тестирования поведения iOS Safari.
Playwright быстрее, чем Puppeteer? +
Производительность схожа для одностраничных задач. Playwright быстрее при параллельном скрапинге, так как прокси для каждого контекста позволяют избежать запуска нескольких браузеров.

Готовы попробовать?

Начните с GProxy за минуты — резидентные прокси от $0.85/GB, IPv6 от $0.03/прокси, оплата по факту использования.

Другие интеграции

GProxy + Puppeteer
Настройте GProxy proxy с Puppeteer для автоматизации headless Chrome. Рассматриваются proxy authentication, переключение proxy на уровне page и stealth техники.
GProxy + Selenium
Настройте GProxy proxy с Selenium WebDriver для автоматизации браузера и парсинга. Охватывает Chrome, Firefox, headless режим и proxy аутентификацию.
GProxy + Scrapy
Узнайте, как настроить GProxy residential и datacenter proxy с Scrapy для крупномасштабного web scraping. Рассматриваются настройка middleware, rotation proxy и обработка ошибок.
GProxy + cURL
Используйте GProxy proxy с cURL для HTTP-запросов через командную строку. Охватывает типы proxy HTTP, HTTPS, SOCKS5, аутентификацию и продвинутые опции.
GProxy + Postman
Настройте GProxy proxy в Postman для API тестирования из различных локаций. Охватывает глобальные proxy settings, конфигурацию per-request и environment variables.
GProxy + n8n
Направляйте HTTP requests из workflow n8n через GProxy proxy. Охватывает конфигурацию HTTP Request node, environment variables и паттерны автоматизации.
support_agent
GProxy Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.