Categories: Создание сайта

Загрузка FireFox на сервер для работы Selenium geckodriver

Использование Selenium часто бывает самым удобным решением для определнных задач. Так как полностью иммитируются действия человека.
Но что делать, когда Selenium нужно использовать на виртуальном сервере. Ведь для работы нужна будет загрузка FireFox на сервер. А вот статья кому интересна также загрузка Google Chrome .
Когда мне понадобилось использовать Selenium на виртуальном серевере, я выбрада длля себя использование Selenium geckodriver и загрузисла Firefox.
В этом руководстве я расскажу подробно об установке и настройке Mozilla Firefox на виртуальном сервере для использования с Selenium geckodriver.

Подключение к терминалу виртуального сервера

Виртуальный сервер, который я использую это традиционно Zomro
После того, как вы зарегистрировались, оплатили и создали сервер, вам потребуется войти в терминал сервера, чтобы продолжить работу. В этой части руководства расскажу, как выполнить вход в терминал с использованием программы PuTTY.

  1. Скачайте и установите программу PuTTY на ваш компьютер. Вы можете найти ее на официальном сайте: https://www.putty.org/.
  2. Запустите программу PuTTY.
  3. Введите IP-адрес вашего виртуального сервера в поле “Host Name (or IP address)” в окне PuTTY.
  4. Убедитесь, что порт установлен на значение 22 (порт SSH по умолчанию).
  5. Убедитесь, что протокол установлен на “SSH”.
  6. Нажмите кнопку “Open”, чтобы начать соединение.
  7. При первом подключении вам может быть предложено подтвердить подлинность сервера. Нажмите “Yes”, чтобы продолжить.
  8. Введите свои учетные данные для входа в терминал сервера (обычно это имя пользователя и пароль, предоставленные вам провайдером сервера). Когда вы вводите пароль – не будет видно, что он вводится – это нормально.
  9. После ввода учетных данных вы будете подключены к терминалу вашего виртуального сервера.

Теперь вы можете выполнять команды и работать с вашим виртуальным сервером через терминал.

Проверка наличия Python на сервере

Первое что Вам нужно сделать, это проверить версию Python. Убедитесь, что у вас установлена версия Python 3.x.x.

python3 --version

Обновление пакетов

Прежде чем начать установку Firefox, рекомендуется обновить список пакетов на вашем виртуальном сервере. Выполните следующую команду:

sudo apt update

Установка зависимостей

Для успешной установки и работы Firefox на виртуальном сервере необходимо установить некоторые зависимости. Выполните следующую команду:

sudo apt install python3-setuptools python3-wheel build-essential python3-dev

Эта команда установит необходимые зависимости для работы с Python на вашем виртуальном сервере.

Установка инструмента pip

Для управления пакетами Python нам понадобится инструмент pip. Установите его с помощью следующей команды:

apt install python3-pip

Установка пакета для создания виртуального окружения

Для создания изолированного окружения Python на вашем виртуальном сервере, рекомендуется установить пакет python3-venv. Выполните следующую команду:

apt install python3-venv

Загрузка FireFox на сервер виртуальный

Теперь мы перейдем к загрузке и установке Firefox на ваш виртуальный сервер.
1. Загрузите последнюю версию Firefox для Linux с официального сайта Mozilla, выполнив следующую команду:

wget "https://download.mozilla.org/?product=firefox-latest-ssl&os=linux64&lang=en-US" -O firefox.tar.bz2

2. Распакуйте загруженный файл с помощью следующей команды:

tar -xvf firefox*.tar.bz2

или если нужно, например, распаковать в папку opt

sudo tar -xf firefox.tar.bz2 -C /opt/

3. Если вы хотите, чтобы Firefox был доступен из любой директории в терминале, вы можете добавить путь к исполняемому файлу Firefox в переменную PATH.
Для этого :
– Откройте файл .bashrc в вашем домашнем каталоге с помощью следующей команды:

nano ~/.bashrc
  • Добавьте следующую строку в конец файла, где /пусь/к/firefox -это путь к установленной папке firefox.
export PATH=$PATH:/путь/к/firefox

например для VS Zomro это путь:

#firefox
export PATH=$PATH:/root/firefox

4. Обновите список пакетов с помощью следующей команды

sudo apt-get update

5. Установите некоторые зависимости для корректной работы Firefox:

sudo apt-get install libgtk-3-0 libdbus-glib-1-2 libx11-xcb1
pip install dbus-python

6. Перезагрузите терминал

7. Запустите следующую команду, чтобы убедиться, что Firefox успешно установлен

firefox --version

Если Вы видите в терминал версию Firefox – Поздравляю! Вы успешно установили и настроили Firefox на вашем виртуальном сервере.

Проблемы с кириллицей в коде програмы Python

Вы тестировали Вашу программу через компьютер и все было хорошо. Но теперь Вы на виртульаном сервере.
В некоторых случаях может возникнуть ошибка связанная с кодировкой, когда вы пытаетесь записать текст, содержащий символы, которые невозможно закодировать в выбранной кодировке. Если у вас возникла такая ошибка, вы можете попробовать указать, что кодировка stdout должна быть UTF-8, которая поддерживает широкий спектр символов. Для этого в начале вашей программы добавьте следующие строки:

import sys
try:
     sys.stdout.reconfigure(encoding='utf-8')
except:
     pass

Проверка запущенных процессов Firefox

Обязательно проверяйте запущенные браузеры Firefox. Не забывайте, что тут Вы не видите открыт FireFox или заркрыт.

Чтобы проверить, есть ли запущенные процессы Firefox на вашем виртуальном сервере, выполните следующую команду:

ps aux | grep firefox

Вы увидите список процессов, связанных с Firefox, если они есть.

Остановка всех процессов Firefox

Если вам необходимо остановить все запущенные процессы Firefox на вашем виртуальном сервере, вы можете использовать следующую команду:

pkill firefox

Лично я запускаю эту команду перед каждый запуской своей программы в планировщике крон.

Запуск программы по крону с использованием FireFox

Хоть мы и прописали запуск FireFox в переменнуж PATH, но при запуске программы через планировщик cron я столкнулас с тем, что FireFox не был найден.
Поэтому,. если Вы хотите запускать программу с использванием Firefox по крону, Вам нужно содлать исполняемый файл, например run_bot.sh со следующий содержимым

#!/bin/bash
pkill firefox # писала выше про остановку всех процессов и закрытим всех работающих вкладок
set -x  # добавить опцию -x
export PATH=$PATH:/root/firefox # снова прописываем путь к Firefox
cd /path/to/your/project # замените /path/to/your/project на реальный путь к вашему проекту
. /path/to/your/venv/bin/activate # замените /path/to/your/venv на реальный путь к вашей 
python3 /path/to/your/project/bot.py 

Ну и собстенно последнее, что мы сделаем это добавить задачу в крон
Запустите в теминале

crontab -e

В самом конце файл добавьте

0 7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22 * * * /bin/sh path/to/your/project/run_bot.sh >> /root/cron.log 2>&1

В этом примере программа будет запускаться каждый час с 7 утра до 22 вечера. А логи будут сохранятся в файл cron.log в папке root.

Надеюсь, это расширенное руководство поможет вам успешно установить и настроить Firefox на вашем виртуальном сервере для

Recent Posts

  • Excel

Как правильно открыть CSV с многострочными ячейками в Excel

Если при открытие csv файла с помощью excel У все поехали ячейки - это простой… Read More

% дней назад
  • Python

Загрузка проекта на Github и Автодеплой на сервер

Простые шаги как происходит Загрузка проекта на Github и Автодеплой на сервер Сделайте работу проще! Read More

% дней назад
  • Python
  • Полезная минутка

Миграция базы данных в проектах Python

Миграция базы данных - помогают с этим библиотеки SQLAlchemy и Alembic. Read More

% дней назад
  • Python

Команды Git – Шпаргалка по основным командам Git

Основные Команды Git, которые точно пригодятся. Сохрани себе шпаргалку Git Read More

% дней назад
  • Python

Установка PostgreSQL на сервер Ubuntu и подключение через pgAdmin

Установка PostgreSQL на сервер Read More

% дней назад
  • Полезная минутка

Как создать PrimaryKey для таблицы в PostgreSQL

Как создать PrimaryKey в талице базы данных SQL [РЕШЕНО] Ошибка relation tablename_id_seq doesn't exist Read More

% дней назад