selenium на сервере без графического интерфейса в режиме headless
Иногда Selenium нужно запускать на сервере без графического интерфейса — например на VPS с Debian или Ubuntu.
В таком случае браузер Chrome запускается в режиме headless, то есть без GUI.
Такой способ часто используется для:
- парсеров сайтов;
- автоматизации браузера;
- ботов;
- тестирования;
- авторизации через Selenium;
- обхода JavaScript-защиты.
Установка Google Chrome на Debian и Ubuntu
Скачиваем последнюю стабильную версию Google Chrome:
wget -nc https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
После загрузки устанавливаем браузер:
apt install -f ./google-chrome-stable_current_amd64.deb
Установка Selenium и webdriver-manager
Теперь устанавливаем необходимые Python-библиотеки:
pip install selenium webdriver-manager
Здесь:
selenium— библиотека управления браузером;webdriver-manager— автоматическая загрузка ChromeDriver.
Пример Selenium headless-скрипта
Создаем Python-скрипт:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
options = Options()
options.add_argument('--headless')
options.add_argument('--no-sandbox')
options.add_argument('--disable-dev-shm-usage')
driver = webdriver.Chrome(
service=Service(
ChromeDriverManager().install()
),
options=options
)
driver.get("https://www.python.org/")
print(driver.title)
driver.close()
Что делают параметры Chrome
--headless— запуск браузера без GUI;--no-sandbox— отключение sandbox для VPS;--disable-dev-shm-usage— решение проблем с памятью в Docker и Linux.
Запуск скрипта
Запускаем:
python script.py
Если все настроено правильно — Selenium откроет страницу в headless-режиме и выведет заголовок сайта:
Welcome to Python.org
Где используется headless Selenium
- парсинг сайтов;
- авторизация через JavaScript;
- автоматизация браузера;
- работа с Cloudflare;
- автотесты;
- мониторинг сайтов.
Итог
Selenium в headless-режиме отлично работает на Debian и Ubuntu серверах без графической оболочки.
А связка Chrome + webdriver-manager позволяет быстро развернуть рабочее окружение буквально за несколько минут.
Комментарии