Как настроить прокси в Selenium для веб-скрапинга

Как это сделать, Python, Прокси, Ноябрь-27-20245 минут чтения

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

Selenium-Wire

Selenium Wire - это расширенная версия Selenium, которая добавляет в нее дополнительные возможности, позволяя легко аутентифицировать прокси-серверы, перехватывать HTTP-запросы и ответы, а также отлаживать сетевой трафик.

В этом руководстве мы покажем вам, как настроить прокси в Selenium с помощью selenium-wire и webdriver-manager. Как правило, необходимо загружать бинарные файлы веб-драйверов из браузеров и поддерживать их регулярное обновление. Сайт webdriver-manager упрощает этот процесс, решая эти задачи за вас.

К концу этого блога у вас будет полностью настроенная установка Selenium, адаптированная для работы с прокси-серверами ProxyScrape , готовая к решению любых задач, которые встанут перед вами. Давайте погрузимся!

TL;DR

Чтобы получить доступ к полному скрипту, не проходя весь учебник, нажмите на эту ссылку, чтобы скопировать полный код.

Пререквизиты 

Прежде чем мы перейдем к настройке прокси в Selenium, убедитесь, что у вас установлены и готовы следующие инструменты и библиотеки:

  • Установлен Python
    • Убедитесь, что в вашей системе установлен Python 3.7 или выше.
    • Последнюю версию можно загрузить с официального сайта Python.
  • Необходимые пакеты Python (Pip Install)
    • selenium-wire
    • webdriver-manager

Выполните следующую команду для установки всех зависимостей:

pip install selenium-wire webdriver-manager

Примечание: Вы можете столкнуться с ошибкой "ModuleNotFoundError: Нет модуля с именем blinker._saferef". Эту проблему можно решить, понизив версию библиотеки blinker до версии 1.7.0

  • Начните с первого Деинсталляция текущая версия мигалка
pip uninstall blinker
  • Затем установите конкретную версию, указанную выше:
pip install blinker==1.7.0

Когда все необходимые условия созданы, давайте разделим настройку сценария на три простых шага:

Настройка прокси-серверов в Selenium: Сценарий

Теперь, когда мы рассмотрели все необходимые условия, перейдем к самому сценарию. Это пошаговое руководство поможет вам интегрировать ProxyScrape доверенности на проживание с помощью Selenium, используя selenium-wire и webdriver-manager.

1. Импорт необходимых библиотек

Начнем с импорта необходимых библиотек:

импортировать re
from seleniumwire import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from webdriver_manager.chrome import ChromeDriverManager

2. Конфигурация прокси-сервера

Определите данные прокси-сервера ProxyScrape :

proxy_address = "rp.proxyscrape.com:6060"
proxy_username = "your_proxy_username"
proxy_password = "your_proxy_password"
  • Замените местоимения (proxy_username, proxy_password) с вашими настоящими учетными данными ProxyScrape .
  • rp.proxyscrape.com:6060 является конечной точкой прокси-сервера для жилых домов ProxyScrape .

3. Варианты проводов Selenium

Настройте прокси в Selenium Wire:

sw_options = {
   'proxy': {
       'http': f'http://{proxy_username}:{proxy_password}@{proxy_address}',
       'https': f'https://{proxy_username}:{proxy_password}@{proxy_address}',
   }
}

4. Настройка параметров Chrome

Оптимизируйте настройки Chrome для повышения производительности:

chrome_options = Options()
chrome_options.add_argument("--start-maximized")
chrome_options.add_argument("--no-sandbox")
chrome_options.add_argument("--disable-dev-shm-usage")

5. Инициализация WebDriver

Установите selenium-wire с webdriver-manager:

сервис = сервис(ChromeDriverManager().install())
драйвер = webdriver.Chrome(service=service, seleniumwire_options=sw_options, options=chrome_options)
  • ChromeDriverManager: Автоматически загружает и устанавливает правильный бинарный драйвер ChromeDriver для вашей версии браузера.
  • seleniumwire_options: Настраивает прокси для Selenium Wire.
  • опции: Применяет настройки, специфичные для Chrome.

6. Зайдите на целевой веб-сайт

Перейдите на конечную точку ProxyScrape Judge, чтобы протестировать прокси:

driver.get('https://ssl-judge2.api.proxyscrape.com/')
  • ProxyScrape Судья: Эта конечная точка возвращает информацию об используемом прокси, например ваш IP-адрес и заголовки.

7. Разбор ответа

Извлечение и отображение проксированного IP-адреса с помощью regex:

# Пример: Извлечение IP из ответа
response = driver.page_source

# использование простого регекса для разбора ip-адреса источника
print("Ответ:", response)
print("Ваш IP:", re.search("HTTP_X_FORWARDED_FOR = (\d+\.)+\d+", response).group().split("=")[-1])
# выйти из экземпляра браузера
driver.quit()
  • Regex Объяснение:
    • Совпадает с заголовком HTTP_X_FORWARDED_FOR и извлекает проксированный IP
    • Разделяет результат, чтобы выделить IP-адрес

Заключение

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

Следуя этому руководству, вы сможете создать бесшовную среду, которая не только обойдет ограничения, но и потребует минимальных усилий по настройке. Этот метод использует такие мощные инструменты, как Selenium Wire и WebDriver Manager, для эффективного управления и маршрутизации трафика через прокси-серверы, обеспечивая эффективность и надежность ваших задач по скраппингу.

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