Настройка прокси в Selenium для веб-парсинга
Этот урок посвящён настройке прокси в Selenium для анонимности при веб-парсинге элементов <address> с классом email на странице parsertools.ru/test.
Опции прокси
Эти параметры позволяют настроить работу браузера через прокси-сервер, что полезно для анонимизации, обхода блокировок и тестирования сетевых условий:
--proxy-server
Задаёт адрес и порт прокси-сервера, через который будет идти весь трафик браузера. Это удобно для обхода геоблокировок, тестирования сайтов из разных регионов или скрытия реального IP. Поддерживаются различные типы прокси, включая HTTP, HTTPS и SOCKS. Без этой опции браузер использует прямое соединение с интернетом. Часто применяется в автоматизации и парсинге для распределения нагрузки или обхода ограничений.
--proxy-bypass-list
Позволяет указать список доменов или IP-адресов, которые должны подключаться напрямую, минуя прокси. Это полезно, если нужно использовать прокси только для определённых сайтов, а внутренние или локальные ресурсы обходить напрямую. Можно задавать маски и диапазоны адресов. Опция делает конфигурацию более гибкой и безопасной. Без неё весь трафик браузера будет идти через указанный прокси.
Пример по этой теме с описанием можно посмотреть здесь.
Пример парсинга
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
from webdriver_manager.chrome import ChromeDriverManager
import time
# Настройка Selenium с прокси
options = webdriver.ChromeOptions()
options.add_argument('--proxy-server=http://127.0.0.1:8080')
options.add_argument('--proxy-bypass-list=*.google.com')
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=options)
url = "https://parsertools.ru/test/"
try:
driver.get(url)
time.sleep(3)
print("****** Находим элементы с классом email ******")
address_tags = driver.find_elements(By.CLASS_NAME, 'email')
if address_tags:
for i, address in enumerate(address_tags, 1):
print(f"Элемент {i}: {address.text.strip()}")
else:
print("Класс 'email' не найден")
finally:
driver.quit()
Как работает код
- Прокси: Направляет запросы через указанный сервер.
- Парсинг: Извлекает текст из
<address>с классомemail.
Тестирование
Пример структуры страницы:
Результат:
Элемент 1: Автор: admin@parsertools.ru
Оптимизация
- Явное ожидание: Используйте
WebDriverWait. - Прокси: Убедитесь, что прокси-сервер работает.
Этические аспекты
Проверяйте robots.txt, избегайте перегрузки сервера, соблюдайте правила использования данных.
Ограничения
- Прокси: Требуется действующий сервер прокси.
Заключение
Настройка прокси в Selenium повышает анонимность. Экспериментируйте на parsertools.ru/test.
Больше уроков по парсингу на parsertools.ru/lessons.
