Як налаштувати проксі для 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
Next, add your proxy settings to the Chrome options. You will use Selenium’s add_argument() method to configure the proxy.
Ось як налаштувати базовий проксі:
import undetected_chromedriver as uc
from selenium.webdriver.common.by import By
# Define your Bright Data proxy details
proxy = "http://:@:"
if __name__ == "__main__":
# Set Chrome options
options = uc.ChromeOptions()
# Run Chrome in headless mode
options.headless = True
# Add proxy to Chrome options
options.add_argument(f" - proxy-server={proxy}")
# Create a Chrome instance
driver = uc.Chrome(
options=options,
use_subprocess=False,
)
# 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
print(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:
import seleniumwire.undetected_chromedriver as uc
from selenium.webdriver.common.by import 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 = {
"proxy": {
"http": proxy_address,
"https": proxy_address,
}
}
if __name__ == "__main__":
# Set Chrome options
options = uc.ChromeOptions()
# Run Chrome in headless mode
options.headless = True
# Create a Chrome instance with the proxy options
driver = uc.Chrome(
seleniumwire_options=proxy_options,
options=options,
use_subprocess=False,
)
# 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
print(ip_address)
Цей код автентифікує ваш проксі Bright Data і використовується для вебскрапінгу. Коли ви відкриєте тестову URL-адресу, ви маєте побачити IP-адресу проксі-сервера.
Ротаційні проксі з Bright Data
Одного проксі недостатньо для великомасштабного вебскрапінгу. Вебсайти можуть заблокувати вашу IP-адресу після надто великої кількості запитів. Щоб цього уникнути, потрібно ротувати проксі, щоб не покладатися лише на одну IP-адресу.
Ротаційні проксі допомагає розподіляти запити між кількома IP-адресами, імітуючи поведінку різних користувачів і зменшуючи ймовірність блокування.
Ось як реалізувати ротацію проксі за допомогою Bright Data:
Задайте список проксі
Створіть список адрес проксі Bright Data. Ви можете отримати їх у своїй панелі керування Bright Data.
import itertools
import random
# 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)
return itertools.cycle(proxy_list)
Використайте ротаційний проксі
Тепер використайте проксі після ротації у своєму скрипті:
# Create a proxy generator from the list
proxy_generator = rotate_proxy(proxy_pool)
if __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 = True
# Create a Chrome instance
driver = uc.Chrome(
options=options,
use_subprocess=False,
)
# 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
print(ip_address)
Цей код щоразу під час запуску використовує випадково вибраний проксі з пулу, забезпечуючи зміну вашої IP-адреси з кожним запитом. Дізнайтеся більше про різницю між ротаційні та статичні проксі.
Преміальні резидентські проксі від Bright Data
Bright Data та інші постачають високоякісні резидентські проксі, які ідеально підходять для вебскрапінгу. Ці проксі рідше блокуються, ніж безкоштовні проксі, оскільки вони призначені реальним домашнім користувачам. Це робить їх складнішими для виявлення вебсайтами.
З Bright Data ви отримуєте:
- Reliable Proxies: Ці проксі рідко блокуються, бо використовують IP-адреси реальних користувачів.
- Automatic Rotation: Bright Data автоматично ротує проксі, тож вам не потрібно керувати цим вручну у своєму коді.
- Geo-targeting: Ви можете націлюватися на конкретні регіони, щоб надсилати запити з певної країни або міста, що корисно для локалізованого вебскрапінгу.
Інтеграція проксі Bright Data з Undetected ChromeDriver
Щоб використовувати резидентські проксі Bright Data, вам потрібно зареєструвати обліковий запис, згенерувати проксі-облікові дані та використати їх у своєму скрипті Undetected ChromeDriver.
Ось як інтегрувати проксі Bright Data у свій скрипт:
import seleniumwire.undetected_chromedriver as uc
from selenium.webdriver.common.by import 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 = {
"proxy": {
"http": proxy_address,
"https": proxy_address,
}
}
if __name__ == "__main__":
# Set Chrome options
options = uc.ChromeOptions()
# Run Chrome in headless mode
options.headless = True
# Create a Chrome instance with the proxy options
driver = uc.Chrome(
seleniumwire_options=proxy_options,
options=options,
use_subprocess=False,
)
# 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
print(ip_address)
Коли ви запускаєте цей код, він використовує ваш резидентський проксі Bright Data та виводить IP-адресу проксі-сервера, забезпечуючи анонімність і відсутність блокувань під час вебскрапінгу.
Conclusion
Впровадження проксі у ваш робочий процес вебскрапінгу є критично важливим для уникнення виявлення та підвищення ефективності ваших завдань зі скрапінгу. Дотримуючись наведених вище кроків, ви можете легко інтегрувати резидентські проксі з Undetected ChromeDriver і почніть вебскрапінг без проблем!

