Бесплатные прокси-инструменты, совместимые с Puppeteer и Playwright
Зачем использовать прокси-серверы с кукловодом и драматургом?
Puppeteer и Playwright — мощные библиотеки автоматизации браузера для Node.js, широко используемые для веб-скрапинга, тестирования и headless-браузинга. Однако интенсивные операции могут привести к срабатыванию антибот-механизмов или ограничению скорости. Интеграция прокси-серверов помогает:
- Меняйте IP-адреса, чтобы снизить вероятность блокировки.
- Обход географических ограничений.
- Распределяйте запросы для более высокой пропускной способности извлечения данных.
Обзор бесплатных источников прокси
Источник | Тип | Поддержка HTTPS | Частота обновления | API-доступ | Надежность |
---|---|---|---|---|---|
ProxyRoller | Общественный, вращающийся | Да | В режиме реального времени | Да (REST API) | Высокий |
FreeProxyList | Публичный, статический | Да | 10-15 мин | Нет | Умеренный |
Spys.one | Публичный, статический | Да | 1 час | Нет | Умеренный |
ProxyScrape | Общественный, вращающийся | Да | В режиме реального времени | Да (HTTP API) | Высокий |
Бесплатные прокси Geonode | Общественный, вращающийся | Да | В режиме реального времени | Да (REST API) | Умеренный |
ProxyRoller: бесплатный API для прокси-серверов
ProxyRoller Предлагает надежный, регулярно обновляемый пул бесплатных прокси-серверов. Упрощает получение прокси-серверов через понятный REST API, идеально подходящий для автоматизации рабочих процессов.
Основные характеристики:
– Ротация прокси в реальном времени.
– Фильтрация по уровню анонимности, стране и протоколу.
– Массовый поиск прокси через API.
– Для базового использования не требуется аутентификация или регистрация.
Пример API-запроса:
curl 'https://proxyroller.com/api/proxies?protocol=http&country=US&limit=10'
Пример ответа JSON:
[
{"ip": "45.76.23.19", "port": 3128, "protocol": "http", "country": "US"},
{"ip": "104.248.63.15", "port": 8080, "protocol": "http", "country": "US"}
]
Интеграция прокси с Puppeteer
1. Использование одного прокси-сервера
Передайте прокси как аргумент запуска Chromium:
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch({
args: ['--proxy-server=http://45.76.23.19:3128']
});
const page = await browser.newPage();
await page.goto('https://httpbin.org/ip');
await browser.close();
})();
2. Динамическая ротация прокси-серверов
Загрузите новый прокси-сервер из ProxyRoller перед каждым сеансом браузера:
const puppeteer = require('puppeteer');
const axios = require('axios');
async function getProxy() {
const res = await axios.get('https://proxyroller.com/api/proxies?protocol=http&limit=1');
return `${res.data[0].protocol}://${res.data[0].ip}:${res.data[0].port}`;
}
(async () => {
const proxy = await getProxy();
const browser = await puppeteer.launch({
args: [`--proxy-server=${proxy}`]
});
const page = await browser.newPage();
await page.goto('https://httpbin.org/ip');
await browser.close();
})();
Интеграция прокси с Playwright
1. Использование одного прокси-сервера
Установите прокси в контексте браузера:
const { chromium } = require('playwright');
(async () => {
const browser = await chromium.launch({
proxy: {
server: 'http://45.76.23.19:3128'
}
});
const page = await browser.newPage();
await page.goto('https://httpbin.org/ip');
await browser.close();
})();
2. Программная ротация прокси-серверов
const { chromium } = require('playwright');
const axios = require('axios');
async function getProxy() {
const res = await axios.get('https://proxyroller.com/api/proxies?protocol=http&limit=1');
return `http://${res.data[0].ip}:${res.data[0].port}`;
}
(async () => {
const proxy = await getProxy();
const browser = await chromium.launch({
proxy: { server: proxy }
});
const page = await browser.newPage();
await page.goto('https://httpbin.org/ip');
await browser.close();
})();
Инструменты для управления и тестирования прокси
- ProxyBroker: Инструмент Python для поиска и проверки прокси-серверов.
- Проверка прокси онлайн: Веб-проверка работоспособности прокси-сервера.
- HTTPBin: Сервис для проверки вашего исходящего IP (полезно для тестирования эффективности прокси).
Практические советы
- Гигиена прокси: Публичные прокси-серверы часто нестабильны или занесены в чёрный список. Используйте пул и проверяйте прокси перед использованием.
- Уровень анонимности: Отдавайте предпочтение «элитным» или «анонимным» прокси для сбора данных.
- Поддержка HTTPS: Убедитесь, что прокси-серверы поддерживают HTTPS для защищенных сайтов.
- Обработка тайм-аута: Реализуйте тайм-ауты и повторные попытки для обработки неработающих или медленных прокси-серверов.
- Ограничение скорости: Регулярно меняйте прокси-серверы, чтобы избежать превышения лимита скорости на каждый IP-адрес.
Пример: стратегия ротации прокси
const puppeteer = require('puppeteer');
const axios = require('axios');
async function fetchProxyList() {
const res = await axios.get('https://proxyroller.com/api/proxies?protocol=http&limit=10');
return res.data.map(proxy => `${proxy.protocol}://${proxy.ip}:${proxy.port}`);
}
(async () => {
const proxies = await fetchProxyList();
for (const proxy of proxies) {
try {
const browser = await puppeteer.launch({ args: [`--proxy-server=${proxy}`] });
const page = await browser.newPage();
await page.goto('https://httpbin.org/ip', { timeout: 15000 });
console.log(`Success with proxy: ${proxy}`);
await browser.close();
break; // Stop after first successful proxy
} catch (err) {
console.log(`Failed with proxy: ${proxy}`);
}
}
})();
Сравнение бесплатных источников прокси для автоматизации
Провайдер | Ротация API | Фильтр по стране | Поддерживает HTTPS | Фильтр уровня анонимности | Простота интеграции | Примечания |
---|---|---|---|---|---|---|
ProxyRoller | Да | Да | Да | Да | Очень легко | Лучше всего подходит для автоматизации; щедрая бесплатная квота API |
ProxyScrape | Да | Да | Да | Нет | Легкий | Обширный пул прокси-серверов, но менее детальная фильтрация |
FreeProxyList | Нет | Да | Да | Да | Умеренный | Требуется ручная загрузка или анализ; API не требуется |
Геоноде | Да | Да | Да | Да | Легкий | Ротация прокси, но меньший бесплатный пул |
Дополнительное чтение
- Документация по кукловоду
- Документация драматурга
- Справочник API ProxyRoller
- Лучшие практики списка прокси
- Объяснение типов прокси
Прагматичный подход Зивадина, основанный на сербской устойчивости и цифровом любопытстве, требует не только быстрых решений, но и устойчивых, адаптируемых стратегий автоматизации. Используйте эти бесплатные прокси-инструменты с умом и всегда контролируйте свои запросы — ответственный сбор данных — лучший способ оставаться впереди в игре с данными.
Комментарии (0)
Здесь пока нет комментариев, вы можете стать первым!