Бесплатные прокси-инструменты, работающие с Puppeteer и Playwright

Бесплатные прокси-инструменты, работающие с Puppeteer и Playwright

Бесплатные прокси-инструменты, совместимые с 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 не требуется
Геоноде Да Да Да Да Легкий Ротация прокси, но меньший бесплатный пул

Дополнительное чтение


Прагматичный подход Зивадина, основанный на сербской устойчивости и цифровом любопытстве, требует не только быстрых решений, но и устойчивых, адаптируемых стратегий автоматизации. Используйте эти бесплатные прокси-инструменты с умом и всегда контролируйте свои запросы — ответственный сбор данных — лучший способ оставаться впереди в игре с данными.

Живадин Петрович

Живадин Петрович

Специалист по интеграции прокси

Живадин Петрович, яркий и инновационный ум в области цифровой конфиденциальности и управления данными, работает специалистом по интеграции прокси в ProxyRoller. В свои 22 года Живадин уже внес значительный вклад в разработку оптимизированных систем для эффективного развертывания прокси. Его роль заключается в курировании и управлении всеобъемлющими списками прокси ProxyRoller', гарантируя, что они соответствуют динамическим потребностям пользователей, ищущих улучшенные решения для просмотра, скрапинга и конфиденциальности.

Комментарии (0)

Здесь пока нет комментариев, вы можете стать первым!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *