Как использовать бесплатные прокси с Selenium или Puppeteer

Как использовать бесплатные прокси с Selenium или Puppeteer

Понимание работы прокси-серверов в автоматизации веб-приложений

Прокси-серверы выступают в роли тайных агентов интернета, маскируя ваш IP-адрес и позволяя незаметно перемещаться по цифровым рубежам. В контексте веб-автоматизации — где Selenium и Puppeteer кружатся в театре браузера — прокси незаменимы для обхода ограничений скорости, географических ограничений и слежки. Бесплатные прокси, хотя и капризны и недолговечны, могут быть достаточны для несложных, некритичных сценариев сбора данных или тестирования.

Типы прокси и их характеристики

Тип прокси Уровень анонимности Поддерживаемые протоколы Типичный сценарий использования Надежность
HTTP Низкий или средний HTTP, HTTPS Простой веб-скрейпинг Низкий
1ТП1Т/5 Высокий 1ТП1Т, 1ТП2Т Сложные протоколы, HTTPS Середина
Прозрачный Нет (раскрывает IP-адрес) HTTP, HTTPS Кэширование, для внутреннего использования Очень низкий
Элитный/Анонимный Высокий HTTP, HTTPS Обход геоблоков Середина

Чтобы ознакомиться со списком бесплатных прокси-серверов, перейдите по ссылке. https://free-proxy-list.net/ или https://www.sslproxies.org/.

Использование бесплатных прокси с Selenium (Python)

1. Установка зависимостей

pip установить селен

Скачайте последнюю версию ChromeDriver Совместимо с вашей версией Chrome.

2. Настройка прокси-сервера в Selenium

Браузер, эта цифровая марионетка, может управляться следующим образом:

from selenium import webdriver from selenium.webdriver.chrome.options import Options proxy = "186.121.235.66:8080" # Replace with your free proxy options = Options() options.add_argument(f'--proxy-server=http://{proxy}') driver = webdriver.Chrome(options=options) driver.get('https://httpbin.org/ip') print(driver.page_source) driver.quit()

Таблица: Типичные переключатели прокси Chrome

Вариант Описание
--proxy-server=http://IP:PORT Настройте HTTP-прокси
--proxy-server=https=IP:PORT Настройте HTTPS-прокси
--proxy-bypass-list=localhost;127.0.0.1 Исключить адреса из прокси-сервера

3. Использование прокси-серверов с аутентификацией

Бесплатные прокси с аутентификацией — большая редкость, но если вам посчастливится на такой найти:

from selenium import webdriver from selenium.webdriver.chrome.service import Service from selenium.webdriver.chrome.options import Options # Authenticated proxies require a Chrome extension workaround from selenium.webdriver.common.by import By import zipfile proxy_host = 'proxy.example.com' proxy_port = 8000 proxy_user = 'user' proxy_pass = 'pass' manifest_json = """ { "version": "1.0.0", "manifest_version": 2, "name": "Chrome Proxy", "permissions": [ "proxy", "tabs", "unlimitedStorage", "storage", " ", "webRequest", "webRequestBlocking" ], "background": { "scripts": ["background.js"] } } """ background_js = f""" var config = {{ mode: "fixed_servers", rules: {{ singleProxy: {{ scheme: "http", host: "{proxy_host}", port: parseInt({proxy_port}) }}, bypassList: ["localhost"] }} }}; chrome.proxy.settings.set({{value: config, scope: "regular"}}, function() {{}}); function callbackFn(details) {{ return {{ authCredentials: {{ username: "{proxy_user}", password: "{proxy_pass}" }} }}; }} chrome.webRequest.onAuthRequired.addListener( callbackFn, {{urls: [" "]}}, ['blocking'] ); """ # Создание расширения прокси pluginfile = 'proxy_auth_plugin.zip' с помощью zipfile.ZipFile(pluginfile, 'w') as zp: zp.writestr("manifest.json", manifest_json) zp.writestr("background.js", background_js) chrome_options = Options() chrome_options.add_extension(pluginfile) driver = webdriver.Chrome(options=chrome_options) driver.get('https://httpbin.org/ip')

Ссылка: Аутентификация через Selenium Proxy (GitHub Gist)

Использование бесплатных прокси с Puppeteer (Node.js)

1. Установка Puppeteer

npm install puppeteer

2. Запуск Puppeteer через прокси-сервер

Пусть браузер наденет свою новую маску:

const puppeteer = require('puppeteer'); (async () => { const browser = await puppeteer.launch({ args: ['--proxy-server=http://186.121.235.66:8080'] }); const page = await browser.newPage(); await page.goto('https://httpbin.org/ip'); const body = await page.content(); console.log(body); await browser.close(); })();

3. Обработка аутентификации прокси-сервера

Когда привратник требует подтверждения личности:

const puppeteer = require('puppeteer'); (async () => { const browser = await puppeteer.launch({ args: ['--proxy-server=http://proxy.example.com:8000'] }); const page = await browser.newPage(); await page.authenticate({ username: 'user', password: 'pass' }); await page.goto('https://httpbin.org/ip'); const body = await page.content(); console.log(body); await browser.close(); })();

4. Вращение прокси-объектов в Puppeteer

Балет эфемерных идентичностей, поставленный следующим образом:

const proxies = [ 'http://proxy1:port', 'http://proxy2:port', 'http://proxy3:port' ]; const puppeteer = require('puppeteer'); (async () => { for (const proxy of proxies) { const browser = await puppeteer.launch({ args: [`--proxy-server=${proxy}`] }); const page = await browser.newPage(); await page.goto('https://httpbin.org/ip'); const body = await page.content(); console.log(`Proxy: ${proxy}\n${body}\n`); await browser.close(); } })();

Бесплатные источники прокси

Имя URL Функции
Список бесплатных прокси https://free-proxy-list.net/ Обширный список протоколов HTTP/S, обновленный.
SSL-прокси https://www.sslproxies.org/ HTTPS-прокси, быстрое обновление
ProxyScrape https://proxyscrape.com/free-proxy-list Множественные протоколы
Spys.one http://spys.one/en/ Расширенная фильтрация

Передовые методы и ограничения

  • Эфемерная природа: Бесплатные прокси-серверы часто исчезают без предупреждения; отслеживайте их работоспособность с помощью таких инструментов, как [название инструмента]. ProxyChecker.
  • Скорость и надежность: Ожидайте задержек, таймаутов и периодических тупиковых ситуаций.
  • Безопасность: Никогда не используйте бесплатные прокси для доступа к конфиденциальным аккаунтам — атаки типа «человек посередине» часто происходят из-за скрытых угроз.
  • Правовые и этические аспекты: Всегда соблюдайте правила, указанные в файле robots.txt, и условия предоставления услуг.

Пример проверки прокси-сервера (Python)

Перед запуском браузера проверьте работоспособность прокси-сервера:

import requests proxy = "186.121.235.66:8080" proxies = {"http": f"http://{proxy}", "https": f"http://{proxy}"} try: response = requests.get('https://httpbin.org/ip', proxies=proxies, timeout=5) print(response.json()) except Exception as e: print(f"Proxy failed: {e}")

Ссылки на ресурсы

Теофиль Бове

Теофиль Бове

Прокси-аналитик

Теофиль Бове — 21-летний аналитик прокси-серверов в ProxyMist, где он специализируется на составлении и обновлении полных списков прокси-серверов по всему миру. Обладая врожденной склонностью к технологиям и кибербезопасности, Теофиль стал ключевым членом команды, обеспечивая бесплатную доставку надежных SOCKS, HTTP, элитных и анонимных прокси-серверов пользователям по всему миру. Родившийся и выросший в живописном городе Лион, Теофиль'с юных лет увлекся цифровой конфиденциальностью и инновациями.

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

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

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

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