Skip to content
Beginner / 2 min read

Как использовать прокси ProxyScrape с Selenium на Linux для веб-скрапинга (руководство для начинающих)

Пошаговое руководство для начинающих по настройке резидентных, датацентровых или мобильных прокси ProxyScrape в Selenium на Linux. Включает настройку HTTP и SOCKS5, обходы аутентификации и базовую ротацию для веб-скрапинга.

Linux SOCKS5 HTTP(S) Веб-скрейпинг

Обзор

Если вы искали «proxy scape», «proxyscaper» или «proxyscape», вероятно, вам нужен ProxyScrape. В этом руководстве используется правильное написание. ProxyScrape предоставляет резидентные, датацентровые и мобильные прокси с поддержкой HTTP и SOCKS5, пул из более чем 97 млн IP-адресов, а также оплату по мере использования и фиксированную месячную подписку.

В этом руководстве для начинающих вы настроите прокси ProxyScrape в Selenium на Linux для скрапинга веб-страниц. Мы рассмотрим HTTP и SOCKS5, аутентификацию и базовую ротацию. В конце у вас будет рабочий скрипт Selenium, который направляет трафик через прокси ProxyScrape.

Предварительные требования

  • Аккаунт ProxyScrape (бесплатный пробный период или платный план).
  • Система Linux (протестировано на Ubuntu/Debian).
  • Python 3.6 или выше.
  • Менеджер пакетов pip.
  • Установленный Google Chrome или Firefox.
  • Базовые навыки работы с терминалом.

Шаги

  1. Получите учётные данные прокси ProxyScrape.

    Войдите в панель управления ProxyScrape и перейдите к типу прокси, который хотите использовать (резидентные, датацентровые или мобильные). Запишите следующее:

    • Эндпоинт: host:port
    • Имя пользователя и пароль (если включена аутентификация)

    Для веб-скрапинга резидентные прокси часто наиболее надёжны для избежания блокировок, тогда как датацентровые прокси быстрее и дешевле.

  2. Установите Selenium и WebDriver на Linux.

    Установите Python-пакет Selenium:

    pip install selenium
    

    Установите ChromeDriver (для Chrome/Chromium):

    sudo apt update
    sudo apt install chromium-chromedriver
    

    Или установите GeckoDriver (для Firefox):

    sudo apt install firefox-geckodriver
    

    Убедитесь, что драйвер находится в вашем PATH. Проверить можно командой which chromedriver.

  3. Напишите базовый скрипт Selenium с HTTP-прокси ProxyScrape.

    Создайте файл с именем selenium_proxy.py и добавьте следующий код. Замените заполнители на ваши учётные данные ProxyScrape.

    from selenium import webdriver
    from selenium.webdriver.chrome.options import Options
    
    PROXY = "http://username:password@host:port"  # например, http://user123:[email protected]:8080
    chrome_options = Options()
    chrome_options.add_argument(f'--proxy-server={PROXY}')
    driver = webdriver.Chrome(options=chrome_options)
    driver.get("https://httpbin.org/ip")
    print(driver.page_source)
    driver.quit()
    

    Запустите скрипт:

    python selenium_proxy.py
    

    Вы должны увидеть JSON-ответ, содержащий IP-адрес, отличный от вашего. Если отображается ваш реальный IP, прокси работает неправильно.

  4. Обработайте аутентификацию прокси для HTTP-прокси.

    Флаг Chrome --proxy-server не поддерживает встроенные имя пользователя/пароль для HTTP-прокси. Самое простое решение для начинающих — добавить ваш IP в белый список в панели управления ProxyScrape. Перейдите в настройки прокси, добавьте ваш текущий публичный IP в белый список, затем удалите имя пользователя/пароль из URL прокси.

    В качестве альтернативы используйте библиотеку selenium-wire, которая поддерживает прокси с аутентификацией:

    pip install selenium-wire
    
    from seleniumwire import webdriver
    
    options = {
        'proxy': {
            'http': 'http://username:password@host:port',
            'https': 'https://username:password@host:port',
        }
    }
    driver = webdriver.Chrome(seleniumwire_options=options)
    driver.get("https://httpbin.org/ip")
    print(driver.page_source)
    driver.quit()
    
  5. Используйте SOCKS5-прокси с Selenium.

    ProxyScrape также поддерживает SOCKS5. Chrome может использовать SOCKS5 со встроенной аутентификацией:

    PROXY = "socks5://username:password@host:port"
    chrome_options.add_argument(f'--proxy-server={PROXY}')
    

    Обратите внимание, что Firefox может потребовать дополнительной настройки для аутентификации SOCKS5.

  6. Добавьте базовую ротацию прокси.

    Для простой ротации ведите список прокси и случайным образом выбирайте один для каждой сессии браузера. Резидентные прокси ProxyScrape часто предоставляют ротационный эндпоинт, но вы также можете ротировать вручную.

    import random
    from selenium import webdriver
    from selenium.webdriver.chrome.options import Options
    
    proxies = [
        "http://user:pass@host1:port",
        "http://user:pass@host2:port",
        # Добавьте больше прокси из вашего списка ProxyScrape
    ]
    
    proxy = random.choice(proxies)
    chrome_options = Options()
    chrome_options.add_argument(f'--proxy-server={proxy}')
    driver = webdriver.Chrome(options=chrome_options)
    driver.get("https://httpbin.org/ip")
    print(driver.page_source)
    driver.quit()
    

    Для продакшн-скрапинга рассмотрите использование сервиса ротации прокси или библиотеки вроде selenium-wire с собственным middleware.

  7. Протестируйте ваш скрипт для скрапинга.

    Напишите простой скрапер, который загружает страницу и извлекает заголовок:

    from selenium import webdriver
    from selenium.webdriver.chrome.options import Options
    from selenium.webdriver.common.by import By
    
    PROXY = "http://username:password@host:port"
    chrome_options = Options()
    chrome_options.add_argument(f'--proxy-server={PROXY}')
    driver = webdriver.Chrome(options=chrome_options)
    driver.get("https://example.com")
    print(driver.title)
    driver.quit()
    

    Если вы видите заголовок страницы, ваш прокси работает.

Устранение неполадок

  • chromedriver не найден: Убедитесь, что драйвер установлен и находится в вашем PATH. При необходимости используйте export PATH=$PATH:/path/to/driver.
  • В подключении к прокси отказано: Проверьте учётные данные, эндпоинт и белый список IP. Убедитесь, что ваш тариф ProxyScrape активен.
  • Всплывающее окно аутентификации в Chrome: Используйте добавление IP в белый список или selenium-wire, чтобы избежать всплывающего окна.
  • Низкая скорость: Попробуйте датацентровые прокси для более быстрых ответов или уменьшите количество одновременных сессий.
  • Ошибки SSL-сертификата: Добавьте --ignore-certificate-errors в опции Chrome для тестирования (не рекомендуется для продакшна).

Резюме

Вы научились использовать прокси ProxyScrape с Selenium на Linux для веб-скрапинга. Мы рассмотрели получение учётных данных, установку Selenium, настройку HTTP- и SOCKS5-прокси, обработку аутентификации и базовую ротацию. Не забывайте соблюдать условия использования сайтов и robots.txt. Для более продвинутых сценариев изучите ротационные эндпоинты ProxyScrape и функции управления сессиями.