Перейти до вмісту

Як використовувати proxy з Playwright: Complete Guide

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 з locale та timezone для повної гео-симуляції

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+ residential IP від GProxy, це робить Playwright найшвидшим варіантом для паралельного гео-таргетованого скрапінгу.

Конфігурація proxy для кожного контексту

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

Вбудована автентифікація

Playwright обробляє автентифікацію HTTP proxy нативно через конфігурацію proxy. Передавайте username та password безпосередньо в конфігурації 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, що працюють паралельно в межах одного екземпляра браузера. Кожен контекст ізольований зі своїми власними cookies, сховищем та proxy — ідеально для збору даних у великих масштабах.

Сценарії використання

Cross-Browser Testing

Тестуйте вебсайти з різних локацій за допомогою Chromium, Firefox та WebKit з використанням geo-targeted proxies.

Competitive Intelligence

Моніторте вебсайти конкурентів у різних регіонах з ротацією proxy для кожного контексту та емуляцією локалі.

Ad Verification

Перевіряйте розміщення реклами та контент у різних країнах, використовуючи таргетовані residential IP.

Dynamic Content Scraping

Витягуйте дані з сайтів з великою кількістю JavaScript за допомогою повного рендерингу браузера та надійної ротації proxy.

Поради професіоналів
Використовуйте контексти браузера замість нових браузерів — вони створюються в 10 разів швидше та підтримують proxy для кожного контексту. Поєднуйте proxy з locale, timezone та geolocation для повної geo-simulation. Використовуйте route() для блокування ресурсів замість перехоплення запитів для чистішого коду. Інструмент codegen у Playwright може записувати взаємодії та генерувати скрипти, сумісні з proxy.

FAQ

Чи можу я використовувати різні проксі для кожної сторінки? +
Так! Playwright підтримує конфігурацію proxy для кожного контексту. Створіть новий контекст із іншим proxy для кожного завдання — це ключова перевага Playwright над Selenium та Puppeteer.
Чи працює Playwright із SOCKS5? +
Так, Playwright підтримує SOCKS5 проксі нативно. Використовуйте 'socks5://host:port' як URL сервера у конфігурації proxy.
Який браузер варто використовувати для скрейпінгу? +
Chromium для більшості завдань. Firefox, якщо сайти блокують ботів на базі Chrome. WebKit для тестування поведінки iOS Safari.
Чи швидший Playwright за Puppeteer? +
Продуктивність схожа для односторінкових завдань. Playwright швидший для паралельного скрейпінгу, оскільки proxy для кожного контексту дозволяють уникнути запуску кількох браузерів.

Готові спробувати?

Почніть з GProxy за хвилини — резидентні проксі від $0.85/GB, IPv6 від $0.03/проксі, оплата за використання.

Інші інтеграції

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