Николаев Виталий
Блог веб-разработчика: Битрикс, PHP, Python, Linux и SEO
Python Python
19.04.2023

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 позволяет быстро развернуть рабочее окружение буквально за несколько минут.

32 просмотров

Комментарии

Где заказы?
Почему у одних компаний очередь из клиентов, а у других пустой сайт и тишина?
Телеграм канал «Где заказы?» — про продажи, сайты и ошибки бизнеса на реальных примерах. Подписаться