Перейти к основному содержанию
Playwright - это современная библиотека Node.js для автоматизации браузеров, которая поддерживает Chromium, Firefox и WebKit. Надежный набор функций и простой API делают ее отличным выбором для парсинга сложных интерактивных веб-сайтов. Интеграция прокси Catproxy с Playwright осуществляется путем передачи настроек прокси непосредственно в метод browser.newContext() или browser.newPage().

Базовая настройка

Вот как запустить экземпляр браузера Playwright, который направляет весь трафик через наш прокси-шлюз.
Вам понадобится playwright, установленный в вашем проекте: npm install playwright
basic_setup.js
В Playwright учётные данные прокси задаются на уровне браузера или контекста. Все новые страницы в этом контексте будут автоматически использовать те же настройки прокси, что проще, чем аутентификация для каждой страницы в Puppeteer.

Пример из реальной практики: проверка цен на авиабилеты в Google Flights

Цены на авиабилеты - классический пример геозависимых данных. Давайте создадим скрипт для проверки стоимости перелета в одну сторону из Берлина в Лондон на определённую дату, при этом запрос будет выглядеть так, как будто он поступает из Германии (DE).
flights_scraper.js
Google - очень сложная цель! Структура URL и CSS-селекторы в Google Flights сложны и часто меняются. Этот скрипт демонстрирует техническую интеграцию, но для надёжного крупномасштабного парсинга Google вам потребуется реализовать очень надёжную обработку ошибок и регулярно адаптировать селекторы.

Что демонстрирует этот пример

  • Кросс-браузерная автоматизация: Как использовать мощный API Playwright для управления браузером.
  • Упрощенная настройка прокси в Playwright: Современный подход к установке учётных данных прокси на уровне запуска браузера.
  • Парсинг динамического контента: Как дождаться появления определённых элементов (page.waitForSelector) на странице с интенсивным использованием JavaScript перед извлечением данных.
  • Продвинутые локаторы: Использование API locator в Playwright для более гибкого выбора элементов.