Николаев Виталий
Блог веб-разработчика: Битрикс, 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

В своих проектах я использую серверную инфраструктуру Timeweb Cloud

VPS и облачные решения для стабильной работы сайтов на PHP и 1С-Битрикс — от корпоративных сайтов до интернет-магазинов и высоконагруженных веб-проектов.

Перейти на Timeweb Cloud
Реклама · ERID: CQH36pWzJqVJ4YD9t5y227AkMQdhpG2THarwRmX2g9tS8x

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

64 просмотров
Где заказы?

Почему один сайт стабильно приносит заявки, а другой годами просто «висит в интернете»?

В телеграм-канале «Где заказы?» я разбираю реальные ошибки бизнеса, SEO, сайты, рекламу, воронки продаж и показываю, почему компании теряют клиентов и как это исправить.

Без инфоцыганства и мотивационных цитат — только практика, кейсы и рабочие решения для бизнеса и веб-разработки.

Комментарии

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