Опции безопасности Selenium для веб-парсинга
Этот урок посвящён опциям безопасности Selenium, которые помогают обходить ограничения, связанные с SSL, CORS и изоляцией сайтов, при веб-парсинге элементов <address> с классом email на странице parsertools.ru/test.
Опции безопасности
Эти параметры управляют поведением браузера в ситуациях, связанных с безопасностью и SSL-сертификатами.
--ignore-certificate-errors
Эта опция заставляет Chrome игнорировать любые ошибки, связанные с SSL-сертификатами. Она полезна при тестировании сайтов с самоподписанными сертификатами или недействительными цепочками доверия. Без этого параметра браузер будет блокировать такие сайты или выводить предупреждения. Использовать стоит с осторожностью, так как это снижает уровень защиты от атак «человек посередине» (MITM).
--allow-insecure-localhost
Разрешает использовать небезопасные (HTTP) соединения при работе с localhost.
Это удобно для разработчиков, которые тестируют сайты и API на локальной машине без установки SSL-сертификата.
В противном случае Chrome может блокировать загрузку ресурсов.
Опция делает локальную отладку быстрее и проще.
--allow-running-insecure-content
Обычно браузер блокирует загрузку небезопасного контента (HTTP), если основной сайт открыт через HTTPS. Эта опция снимает такое ограничение и разрешает смешанный контент. Она может быть полезна при тестировании старых сайтов, где часть ресурсов доступна только по HTTP. Однако это ослабляет защиту пользователя, поэтому применять её стоит только в безопасной среде.
--disable-web-security
Отключает политику «Same-Origin Policy», которая предотвращает выполнение потенциально опасных скриптов с других доменов. Эта опция нужна в основном разработчикам и тестировщикам для кросс-доменных запросов без настройки CORS. Она позволяет работать с ресурсами с разных источников, будто они находятся на одном домене. Но при этом полностью убирает защиту от межсайтовых атак (XSS, CSRF), поэтому использовать её в продакшене крайне нежелательно.
--disable-site-isolation-trials
Отключает механизм изоляции сайтов, при котором каждый сайт работает в отдельном процессе для повышения безопасности. Это может улучшить производительность и снизить нагрузку на память при большом количестве открытых вкладок. Для автоматизации и тестирования иногда важно отключить эту функцию, чтобы браузер работал быстрее. Но нужно учитывать, что это уменьшает защиту от атак, связанных с межсайтовыми уязвимостями.
Пример по этой теме с описанием можно посмотреть здесь.
Пример парсинга
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('--ignore-certificate-errors')
options.add_argument('--allow-insecure-localhost')
options.add_argument('--allow-running-insecure-content')
options.add_argument('--disable-web-security')
options.add_argument('--disable-site-isolation-trials')
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()
Как работает код
- Опции безопасности: Отключают проверки SSL и CORS, упрощая доступ к контенту.
Тестирование
Пример структуры страницы:
Результат:
Элемент 1: Автор: admin@parsertools.ru
Оптимизация
- Явное ожидание: Используйте
WebDriverWait. - Осторожность: Отключение безопасности может быть рискованным, используйте только на доверенных сайтах.
Этические аспекты
Проверяйте robots.txt, избегайте перегрузки сервера, соблюдайте правила использования данных.
Ограничения
- Безопасность: Отключение веб-безопасности может сделать браузер уязвимым.
- Совместимость: Некоторые опции зависят от версии Chrome.
Заключение
Опции безопасности Selenium упрощают веб-парсинг на сложных сайтах. Экспериментируйте на parsertools.ru/test.
Больше уроков по парсингу на parsertools.ru/lessons.
