Как реализовать прокси с помощью Undetected ChromeDriver
В этом руководстве я покажу, как настроить прокси с Undetected ChromeDriver, включая обработку аутентификации прокси, ротацию прокси и повышение эффективности процесса. Давайте начнём!
Почему использовать прокси с Undetected ChromeDriver?
Прокси необходимы при веб-скрейпинге, потому что они позволяют:
- Bypass IP Blocking: Сайты часто Блокировка IP-адресов сайты распознают вас как бота. С помощью прокси можно обойти эти блокировки и сохранить доступ к сайту.
- Avoid Rate Limiting: Прокси помогают обходить ограничения по трафику, которые сайты накладывают на один IP-адрес, не позволяя вашему скраперу попасть под ограничения.
- Maintain Anonymity: Прокси скрывают ваш реальный IP, благодаря чему ваша активность по скрейпингу остается анонимной и незаметной.
Настройка прокси в Undetected ChromeDriver
Чтобы начать работу с Прокси Bright Data для Undetected ChromeDriver выполните следующие простые шаги:
Install Required Libraries
Перед использованием прокси Bright Data с Undetected ChromeDriver установите необходимые библиотеки:
pip install undetected-chromedriver selenium
Настройка прокси в Chrome Options
Next, add your proxy settings to the Chrome options. You will use Selenium’s add_argument() method to configure the proxy.
Вот как настроить базовый прокси:
импорт undetected_chromedriver в роли uc
с сайта selenium.webdriver.common.by импорт По ссылке
# Define your Bright Data proxy details
прокси = "http://:@:"
если __name__ == "__main__":
# Set Chrome options
options = uc.ChromeOptions()
# Run Chrome in headless mode
options.headless = Правда
# Add proxy to Chrome options
options.add_argument(f" - proxy-server={proxy}")
# Create a Chrome instance
driver = uc.Chrome(
options=options,
use_subprocess=Ложь,
)
# Visit the test URL to check your proxy IP
driver.get("https://httpbin.io/ip")
# Select the body tag containing the current IP address
ip_address = driver.find_element(By.TAG_NAME, "body").text
# Print your current IP
печать(ip_address)
При запуске кода вы должны увидеть IP-адрес прокси-сервера, что подтвердит корректную работу настройки прокси.
Работа с аутентификацией прокси в Bright Data
Для использования прокси Bright Data требуется аутентификация. Вам понадобятся имя пользователя, пароль, хост прокси-сервера и порт, которые выдаются при регистрации в сервисе.
URL прокси с аутентификацией будет выглядеть так:
http://<username>:<password>@<proxy_ip>:<proxy_port>
Вот как настроить прокси с аутентификацией с помощью Selenium и Undetected ChromeDriver.
Install Selenium Wire
Для управления аутентификацией прокси нужно использовать selenium-wire. Он расширяет возможности Selenium и упрощает работу с аутентификацией прокси.
Установите selenium-wire с помощью этой команды:
pip install selenium-wire
Add Proxy Authentication
Теперь вы можете использовать selenium-wire, чтобы передавать свои учетные данные для прокси Bright Data:
импорт seleniumwire.undetected_chromedriver в роли uc
с сайта selenium.webdriver.common.by импорт По ссылке
# Define your Bright Data proxy credentials
proxy_username = ""
proxy_password = ""
proxy_host = ""
proxy_port = ""
# Form the proxy address
proxy_address = f"http://{proxy_username}:{proxy_password}@{proxy_host}:{proxy_port}"
# Add the proxy address to proxy options
proxy_options = {
"прокси": {
"http": proxy_address,
"https": proxy_address,
}
}
если __name__ == "__main__":
# Set Chrome options
options = uc.ChromeOptions()
# Run Chrome in headless mode
options.headless = Правда
# Create a Chrome instance with the proxy options
driver = uc.Chrome(
seleniumwire_options=proxy_options,
options=options,
use_subprocess=Ложь,
)
# Visit the test URL to check your proxy IP
driver.get("https://httpbin.io/ip")
# Select the body tag containing the current IP address
ip_address = driver.find_element(By.TAG_NAME, "body").text
# Print your current IP
печать(ip_address)
Этот код аутентифицирует ваш прокси Bright Data и используется для веб-скрапинга. При переходе по тестовому URL вы должны увидеть IP-адрес прокси-сервера.
Ротационные прокси с Bright Data
Одного прокси недостаточно для крупномасштабного скрейпинга. Сайты могут заблокировать ваш IP после слишком большого количества запросов. Чтобы этого избежать, нужно ротировать прокси, чтобы не полагаться только на один IP-адрес.
Ротация прокси помогает распределять запросы по нескольким IP-адресам, имитируя поведение разных пользователей и снижая риск блокировки.
Вот как реализовать ротацию прокси с помощью Bright Data:
Создайте список прокси
Составьте список прокси-адресов Bright Data. Получить их можно в панели управления Bright Data.
импорт itertools
импорт случайно
# Define a list of Bright Data proxies
proxy_pool = [
"http://:@:",
"http://:@:",
"http://:@:",
]
# Function to rotate proxies
def rotate_proxy(proxy_list):
random.shuffle(proxy_list)
возврат itertools.cycle(proxy_list)
Используйте прокси с ротацией
Теперь используйте прокси из ротации в своем скрипте:
# Create a proxy generator from the list
proxy_generator = rotate_proxy(proxy_pool)
если __name__ == "__main__":
# Set Chrome options
options = uc.ChromeOptions()
# Add the rotated proxy to Chrome options
options.add_argument(f" - proxy-server={next(proxy_generator)}")
# Run Chrome in headless mode
options.headless = Правда
# Create a Chrome instance
driver = uc.Chrome(
options=options,
use_subprocess=Ложь,
)
# Visit the test URL to check your proxy IP
driver.get("https://httpbin.io/ip")
# Select the body tag containing the current IP address
ip_address = driver.find_element(By.TAG_NAME, "body").text
# Print the current IP address
печать(ip_address)
Этот код при каждом запуске использует случайно выбранный прокси из пула, поэтому ваш IP-адрес меняется с каждым запросом. Узнайте больше о различиях между ротационные и статические прокси.
Премиальные резидентские прокси от Bright Data
Bright Data и другие провайдеры предлагают качественные резидентские прокси, которые идеально подходят для веб-скрейпинга. Такие прокси реже блокируются, чем бесплатные, поскольку они назначаются реальным пользователям домашнего интернета. Из-за этого сайтам сложнее их обнаружить.
С Bright Data вы получаете:
- Reliable Proxies: Эти прокси редко блокируются, потому что используют IP-адреса реальных пользователей.
- Automatic Rotation: Bright Data автоматически выполняет ротацию прокси, так что вам не нужно делать это вручную в коде.
- Геотаргетинг: Можно выбирать конкретные регионы, чтобы отправлять запросы из определенной страны или города, что полезно для локализованного сбора данных.
Интеграция прокси Bright Data с Undetected ChromeDriver
Чтобы использовать резидентские прокси Bright Data, нужно зарегистрировать аккаунт, сгенерировать учетные данные для прокси и использовать их в скрипте Undetected ChromeDriver.
Вот как интегрировать прокси Bright Data в свой скрипт:
импорт seleniumwire.undetected_chromedriver в роли uc
с сайта selenium.webdriver.common.by импорт По ссылке
# Define your Bright Data proxy credentials
proxy_username = ""
proxy_password = ""
proxy_host = ""
proxy_port = ""
# Form the proxy address
proxy_address = f"http://{proxy_username}:{proxy_password}@{proxy_host}:{proxy_port}"
# Add the proxy address to proxy options
proxy_options = {
"прокси": {
"http": proxy_address,
"https": proxy_address,
}
}
если __name__ == "__main__":
# Set Chrome options
options = uc.ChromeOptions()
# Run Chrome in headless mode
options.headless = Правда
# Create a Chrome instance with the proxy options
driver = uc.Chrome(
seleniumwire_options=proxy_options,
options=options,
use_subprocess=Ложь,
)
# Visit the test URL to check your proxy IP
driver.get("https://httpbin.io/ip")
# Select the body tag containing the current IP address
ip_address = driver.find_element(By.TAG_NAME, "body").text
# Print your current IP
печать(ip_address)
Когда вы запускаете этот код, он использует ваш резидентский прокси Bright Data и выводит IP-адрес прокси-сервера, обеспечивая анонимность и отсутствие блокировок при веб-скрейпинге.
Заключение
Внедрение прокси в рабочий процесс веб-скрейпинга критически важно, чтобы избежать обнаружения и повысить эффективность задач по сбору данных. Следуя шагам выше, вы сможете легко интегрировать резидентские прокси с Undetected ChromeDriver и начните сбор данных без проблем!

