НОВОЕ! |Один API-вызов — чистые данные. Парсеры не нужны.10 000 токенов бесплатно →

Селен Питон (4). Как использовать Selenium с Python и прокси

Откройте для себя возможности Selenium с Python и используйте прокси-серверы для эффективного веб-скрапинга и автоматизации. Ускорьте сбор данных с помощью доступных прокси-серверов FineProxy.

Опубликовано4 июня 2024 г.
Время чтения2 мин
АвторBrandon Perry

При работе с веб-скрапингом или автоматизацией с использованием Selenium и Python использование прокси может оказаться важным, чтобы избежать банов IP и повысить эффективность сбора данных. Эта статья поможет вам настроить и использовать прокси в Selenium с Python.

Что такое Selenium и зачем использовать прокси?#

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

Настройка Selenium с прокси#

Прежде чем погрузиться в код, убедитесь, что у вас установлены необходимые инструменты:

  • Python
  • Селен (pip install selenium)
  • Драйвер веб-браузера (например, ChromeDriver для Chrome или GeckoDriver для Firefox).

Пошаговое руководство по использованию прокси в Selenium#

1. Настройка Chrome с прокси-сервером#

Чтобы настроить Chrome на использование прокси-сервера, вам необходимо настроить нужные возможности в Selenium.

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager

# Specify proxy details
proxy = "your_proxy_ip:port"

# Set up Chrome options
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument(f'--proxy-server={proxy}')

# Initialize WebDriver
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=chrome_options)

# Open a website to verify the proxy
driver.get("http://whatismyipaddress.com")

# Close the browser
driver.quit()

Прокси с авторизацией#

Если ваш прокси требует аутентификации, вы можете использовать Proxy класс из selenium.webdriver.common.proxy.

from selenium import webdriver
from selenium.webdriver.common.proxy import Proxy, ProxyType
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager

# Proxy settings
proxy = Proxy()
proxy.proxy_type = ProxyType.MANUAL
proxy.http_proxy = "your_proxy_ip:port"
proxy.ssl_proxy = "your_proxy_ip:port"
proxy.add_argument('--proxy-auth=user:password')

capabilities = webdriver.DesiredCapabilities.CHROME
proxy.add_to_capabilities(capabilities)

# Initialize WebDriver
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), desired_capabilities=capabilities)

# Open a website to verify the proxy
driver.get("http://whatismyipaddress.com")

# Close the browser
driver.quit()

Использование Firefox с прокси#

Чтобы настроить Firefox на использование прокси-сервера, измените настройки профиля Firefox.

from selenium import webdriver
from selenium.webdriver.firefox.service import Service
from webdriver_manager.firefox import GeckoDriverManager

# Proxy details
proxy_ip = "your_proxy_ip"
proxy_port = "port"

# Set up Firefox profile
profile = webdriver.FirefoxProfile()
profile.set_preference("network.proxy.type", 1)
profile.set_preference("network.proxy.http", proxy_ip)
profile.set_preference("network.proxy.http_port", int(proxy_port))
profile.set_preference("network.proxy.ssl", proxy_ip)
profile.set_preference("network.proxy.ssl_port", int(proxy_port))

# Initialize WebDriver
driver = webdriver.Firefox(service=Service(GeckoDriverManager().install()), firefox_profile=profile)

# Open a website to verify the proxy
driver.get("http://whatismyipaddress.com")

# Close the browser
driver.quit()

Устранение общих проблем#

Прокси-аутентификация: Если ваш прокси требует входа в систему, убедитесь, что учетные данные установлены правильно.

Блокировка IP-адресов: Некоторые веб-сайты по-прежнему могут блокировать прокси. Используйте резидентные или ротационные прокси-серверы, чтобы решить эту проблему.

Сводка#

Использование прокси с Selenium и Python может помочь вам обойти ограничения IP и улучшить ваши проекты по очистке веб-страниц. Независимо от того, используете ли вы Chrome или Firefox, настройка прокси-серверов включает в себя настройку параметров и возможностей браузера для маршрутизации трафика через прокси-сервер.

БраузерМетод установкиАвторизация по логину/паролюДоступен фрагмент кода
ChromeПараметры ChromeДаДа
FirefoxFirefoxПрофильДаДа

Следуя этим шагам, вы можете обеспечить бесперебойную и эффективную очистку данных. Если у вас есть какие-либо вопросы или идеи для будущих уроков, не стесняйтесь оставлять комментарии!