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

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

- Автор: [Brandon Perry](https://fineproxy.org/ru/brandon-perry/)
- Опубликовано: 2024-06-04T11:17:19.000Z
- Обновлено: 2024-05-27T11:43:12.000Z
- Canonical: https://fineproxy.org/ru/selenium-python-4-how-to-use-selenium-with-python-and-proxies/

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

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

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

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

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

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

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

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

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

```python
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`.

```python
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.

```python
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 | Да | Да |
| Firefox | FirefoxПрофиль | Да | Да |

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