Как парсить сайты с Puppeteer Stealth
Те, кто занимаются парсингом сайтов, знают, что ресурсы не любят, когда их серверы нагружают запросами. Поэтому нужны надстройки для парсинга.
Puppeteer работает с сайтом как с обычным браузером, а его Stealth-плагин маскирует ботов. Это нужно для парсинга, особенно если работаете с сайтами, которые очень не любят парсеры. В этот список входят все крупные ресурсы и приложения.
В статье расскажем, как использовать Puppeteer Stealth для парсинга.
Что такое парсинг и зачем Puppeteer Stealth?
Парсинг — когда программы автоматически собирают данные. Например, информацию о ценах, скидках и новостях. Многие сайты защищаются от ботов.
Puppeteer Stealth решает эту проблему. Он маскирует скрипт под работу реального пользователя. То есть выглядит, будто обычный юзер зашел на сайт, покликал и поискал информацию в поиске.
Прокси распределяют эти действия на нескольких юзеров. Так вы не перегрузите сервер и распределите нагрузку. Сайты это оценят.
Парсер: что это и как он работает с Puppeteer
Парсер — инструмент, который автоматизирует извлечение данных. Puppeteer и Stealth-плагин делают парсер невидимым для антибот-систем. Можете продолжать работу с минимальными рисками получить бан.
Данные — это ключ к успешному парсингу
Данные — основная цель парсинга. Puppeteer собирает информацию: от текста и изображений до таблиц и списков. Stealth помогает сделать это незаметно. Это пригодится для регулярного сбора информации с одного сайта.
Как парсить: устанавливаем Puppeteer и Puppeteer Stealth
Шаг 1: Устанавливаем Puppeteer и Stealth
Первый шаг для успешного парсинга сайтов — установка Puppeteer и Stealth. Эти компоненты работают вместе. Откройте командную строку (cmd) на Windows и пропишите:
npm install puppeteer
npm install puppeteer-extra puppeteer-extra-plugin-stealth
Вы увидите, как скрипт загружает и устанавливает нужные файлы.
Шаг 2. Настраиваем код
После установки необходимо добавить плагин в скрипт. Откройте файл проекта (вашего парсера, например, написанного на Python) и добавьте код:
const puppeteer = require('puppeteer-extra');
const stealthPlugin = require('puppeteer-extra-plugin-stealth');
// Подключаем Stealth
puppeteer.use(stealthPlugin());
(async () => {
const browser = await puppeteer.launch({ headless: true });
const page = await browser.newPage();
// Переходим на сайт
await page.goto('https://example.com');
// Выполняем нужные действия на сайте
await page.screenshot({ path: 'example.png' });
await browser.close();
})();
Мы:
Подключаем Puppeteer и Stealth-плагин.
Запускаем браузер в режиме headless (то есть без интерфейса), что удобно для большинства задач.
Открываем новую вкладку, заходим на сайт и делаем скриншот для примера.
Как подключить прокси к скрипту с Puppeteer Stealth?
Чтобы парсить сайты и распределить нагрузку на несколько IP, нужно настроить прокси. Так вы избежите банов от сайтов, которые отслеживают частые запросы с одного IP.
Шаг 1: Выбор прокси
Можете выбрать серверные прокси любого протокола: SOCKS5 и HTTP/HTTPS.
Скопируйте из личного кабинета данные для подключения к прокси: IP-адрес, порт, а также логин и пароль.
Шаг 2: Добавляем прокси в скрипт
Теперь, прокси нужно добавить в скрипт на Puppeteer. Вот пример как выглядит код:
Разберем код, чтобы было понятнее:
Запуск браузера с прокси. В параметре args передается адрес прокси-сервера. Например, для HTTP-прокси это будет выглядеть как --proxy-server=HTTP://123.45.67.89:8080, где 123.45.67.89 — это IP, а 8080 — порт прокси.
Авторизация прокси. Если прокси требует логин и пароль, используйте метод page.authenticate(), передав туда свои учетные данные.
Работа с Puppeteer. Скрипт работает как обычно: открывается страница, выполняются действия (в данном случае делается скриншот).
Шаг 3: Тестируем прокси
Чтобы проверить, что прокси работает корректно, можно запустить скрипт и проверить IP-адрес через сервис, который показывает IP:
await page.goto('https://www.whatismyip.com/');
Если на сайте отображается IP прокси, значит все настроено правильно.
Шаг 4. Проверка работы Stealth
Теперь проверим, работает ли Stealth. Один из способов — зайти на сайт, который распознает ботов, например, https://bot.sannysoft.com/. Запустите скрипт с Puppeteer Stealth и посмотрите, как реагирует система. Если все правильно, сайт не заметит, что вы бот.
Шаг 5. Оптимизируем настройки
Теперь, когда базовая настройка готова, можно оптимизировать скрипт для конкретных задач. Puppeteer Stealth настраивает поведение бота:
Подделка следов мыши. Браузер будет генерировать случайные движения мыши, чтобы сайт думал, что за ним наблюдает реальный человек.
Скрытие признаков автоматизации. Puppeteer убирает метки navigator.webdriver, которые говорят сайту, что перед ним бот.
Парсер: что это и как выбрать
Хороший парсер — тот, который работает быстро и без сбоев. Puppeteer в сочетании с Stealth избегает банов и собирает данные. Даже если не знакомы с программированием, разобраться в работе инструмента не сложно — следуйте инструкциям и адаптируйте код под себя.
Настроив Puppeteer Stealth один раз, вы получите инструмент, который парсит данные или тестирует сайты, не привлекая внимания.