ПОЧЕМУ PUPPETEER + PROXY POLAND
Puppeteer — официальная библиотека Node.js от Google для управления headless Chrome. В сочетании с выделенными мобильными прокси 4G от Proxy Poland Puppeteer становится мощным инструментом для веб-скрейпинга, тестирования и автоматизации, обходящим даже самые агрессивные антибот-системы.
ИНСТРУКЦИЯ ПО НАСТРОЙКЕ
Установите Puppeteer
Установите Puppeteer в вашем проекте Node.js:
npm install puppeteer # or for minimal install: npm install puppeteer-core
Получите данные прокси
Зарегистрируйтесь на proxypoland.com и получите IP прокси, порт, логин и пароль из панели управления.
Базовая настройка прокси
Запустите Puppeteer с SOCKS5 прокси:
const puppeteer = require('puppeteer');
const browser = await puppeteer.launch({
args: [
'--proxy-server=socks5://proxy-ip:port',
'--no-sandbox',
],
});
const page = await browser.newPage();
// Authenticate with proxy
await page.authenticate({
username: 'your-username',
password: 'your-password',
});
await page.goto('https://httpbin.org/ip');
const content = await page.content();
console.log(content);
await browser.close();Альтернатива с HTTP прокси
Использование HTTP прокси с аутентификацией:
const browser = await puppeteer.launch({
args: ['--proxy-server=http://proxy-ip:port'],
});
const page = await browser.newPage();
await page.authenticate({
username: 'your-username',
password: 'your-password',
});
await page.goto('https://example.com');Режим Stealth + прокси
Используйте puppeteer-extra для стелс-браузинга:
const puppeteer = require('puppeteer-extra');
const StealthPlugin =
require('puppeteer-extra-plugin-stealth');
puppeteer.use(StealthPlugin());
const browser = await puppeteer.launch({
args: ['--proxy-server=socks5://proxy-ip:port'],
headless: 'new',
});
const page = await browser.newPage();
await page.authenticate({
username: 'user', password: 'pass'
});
// Now scrape with stealth + mobile proxy
await page.goto('https://target-site.com');Ротация IP между страницами
Ротация IP через API Proxy Poland:
const axios = require('axios');
async function rotateIP() {
const response = await axios.get(
'https://proxy-ip:port/rotate',
{ auth: { username: 'user', password: 'pass' } }
);
console.log('New IP:', response.data);
}
// Rotate between scraping sessions
await rotateIP();
await page.goto('https://next-target.com');Проверка работы прокси
Быстрый тест для подтверждения подключения прокси:
const page = await browser.newPage();
await page.authenticate({
username: 'user', password: 'pass'
});
await page.goto('https://httpbin.org/ip');
const ip = await page.$eval(
'pre', el => el.textContent
);
console.log('Proxy IP:', JSON.parse(ip).origin);
// Should show Polish mobile IPПРОФЕССИОНАЛЬНЫЕ СОВЕТЫ
Используйте puppeteer-extra-plugin-stealth для сайтов с продвинутым обнаружением ботов
Установите viewport на мобильные размеры для мобильно-специфичного скрейпинга
Реализуйте перехват запросов для блокировки ненужных ресурсов (изображений, CSS) для ускорения скрейпинга
Используйте page.waitForNavigation() после действий для полной загрузки страниц через прокси
Для высокой параллельности запускайте несколько экземпляров браузера с разными прокси
ОТЛИЧНО ПОДХОДИТ ДЛЯ
FAQ
Puppeteer лучше Selenium для работы с прокси?+
Puppeteer имеет нативную поддержку прокси, которую легче настроить, чем в Selenium. У него также есть встроенный page.authenticate() для аутентификации прокси. Для проектов на Node.js Puppeteer обычно лучший выбор.
Можно ли запускать Puppeteer в headless-режиме с этими прокси?+
Да. Используйте headless: 'new' в опциях запуска. Прокси работает идентично в headless и headed режимах. Для стелса добавьте puppeteer-extra-plugin-stealth.
Как обрабатывать CAPTCHA при скрейпинге через мобильные прокси?+
Мобильные IP значительно снижают частоту CAPTCHA. Большинство сайтов показывают меньше CAPTCHA мобильным IP операторов. Для оставшихся CAPTCHA интегрируйте сервис решения, например 2Captcha, или используйте стелс-плагины.
Можно ли запускать несколько экземпляров Puppeteer с разными прокси?+
Да. Запускайте отдельные экземпляры браузера, каждый с другим прокси Proxy Poland в аргументах. Это идеально для параллельного скрейпинга с изоляцией IP.
А как насчёт Playwright — работает ли он с этими прокси?+
Да. Playwright имеет встроенную поддержку прокси: browser.launch({ proxy: { server: 'socks5://ip:port', username: 'user', password: 'pass' } }). Те же данные прокси работают и с Puppeteer, и с Playwright.