Использование Selenium часто бывает самым удобным решением для определнных задач. Так как полностью иммитируются действия человека.
Но что делать, когда Selenium нужно использовать на виртуальном сервере. Ведь для работы нужна будет загрузка FireFox на сервер. А вот статья кому интересна также загрузка Google Chrome .
Когда мне понадобилось использовать Selenium на виртуальном серевере, я выбрада длля себя использование Selenium geckodriver и загрузисла Firefox.
В этом руководстве я расскажу подробно об установке и настройке Mozilla Firefox на виртуальном сервере для использования с Selenium geckodriver.
Подключение к терминалу виртуального сервера
Виртуальный сервер, который я использую это традиционно Zomro
После того, как вы зарегистрировались, оплатили и создали сервер, вам потребуется войти в терминал сервера, чтобы продолжить работу. В этой части руководства расскажу, как выполнить вход в терминал с использованием программы PuTTY.
- Скачайте и установите программу PuTTY на ваш компьютер. Вы можете найти ее на официальном сайте: https://www.putty.org/.
- Запустите программу PuTTY.
- Введите IP-адрес вашего виртуального сервера в поле “Host Name (or IP address)” в окне PuTTY.
- Убедитесь, что порт установлен на значение 22 (порт SSH по умолчанию).
- Убедитесь, что протокол установлен на “SSH”.
- Нажмите кнопку “Open”, чтобы начать соединение.
- При первом подключении вам может быть предложено подтвердить подлинность сервера. Нажмите “Yes”, чтобы продолжить.
- Введите свои учетные данные для входа в терминал сервера (обычно это имя пользователя и пароль, предоставленные вам провайдером сервера). Когда вы вводите пароль – не будет видно, что он вводится – это нормально.
- После ввода учетных данных вы будете подключены к терминалу вашего виртуального сервера.
Теперь вы можете выполнять команды и работать с вашим виртуальным сервером через терминал.
Проверка наличия Python на сервере
Первое что Вам нужно сделать, это проверить версию Python. Убедитесь, что у вас установлена версия Python 3.x.x.
1 | python3 --version |
Обновление пакетов
Прежде чем начать установку Firefox, рекомендуется обновить список пакетов на вашем виртуальном сервере. Выполните следующую команду:
1 | sudo apt update |
Установка зависимостей
Для успешной установки и работы Firefox на виртуальном сервере необходимо установить некоторые зависимости. Выполните следующую команду:
1 | sudo apt install python3-setuptools python3-wheel build-essential python3-dev |
Эта команда установит необходимые зависимости для работы с Python на вашем виртуальном сервере.
Установка инструмента pip
Для управления пакетами Python нам понадобится инструмент pip. Установите его с помощью следующей команды:
1 | apt install python3-pip |
Установка пакета для создания виртуального окружения
Для создания изолированного окружения Python на вашем виртуальном сервере, рекомендуется установить пакет python3-venv. Выполните следующую команду:
1 | apt install python3-venv |
Загрузка FireFox на сервер виртуальный
Теперь мы перейдем к загрузке и установке Firefox на ваш виртуальный сервер.
1. Загрузите последнюю версию Firefox для Linux с официального сайта Mozilla, выполнив следующую команду:
1 | wget "https://download.mozilla.org/?product=firefox-latest-ssl&os=linux64&lang=en-US" -O firefox.tar.bz2 |
2. Распакуйте загруженный файл с помощью следующей команды:
1 | tar -xvf firefox*.tar.bz2 |
или если нужно, например, распаковать в папку opt
1 | sudo tar -xf firefox.tar.bz2 -C /opt/ |
3. Если вы хотите, чтобы Firefox был доступен из любой директории в терминале, вы можете добавить путь к исполняемому файлу Firefox в переменную PATH.
Для этого :
– Откройте файл .bashrc в вашем домашнем каталоге с помощью следующей команды:
1 | nano ~/.bashrc |
- Добавьте следующую строку в конец файла, где /пусь/к/firefox -это путь к установленной папке firefox.
1 | export PATH=$PATH:/путь/к/firefox |
например для VS Zomro это путь:
1 2 | #firefox export PATH=$PATH:/root/firefox |
4. Обновите список пакетов с помощью следующей команды
1 | sudo apt-get update |
5. Установите некоторые зависимости для корректной работы Firefox:
1 2 | sudo apt-get install libgtk-3-0 libdbus-glib-1-2 libx11-xcb1 pip install dbus-python |
6. Перезагрузите терминал
7. Запустите следующую команду, чтобы убедиться, что Firefox успешно установлен
1 | firefox --version |
Если Вы видите в терминал версию Firefox – Поздравляю! Вы успешно установили и настроили Firefox на вашем виртуальном сервере.
Проблемы с кириллицей в коде програмы Python
Вы тестировали Вашу программу через компьютер и все было хорошо. Но теперь Вы на виртульаном сервере.
В некоторых случаях может возникнуть ошибка связанная с кодировкой, когда вы пытаетесь записать текст, содержащий символы, которые невозможно закодировать в выбранной кодировке. Если у вас возникла такая ошибка, вы можете попробовать указать, что кодировка stdout должна быть UTF-8, которая поддерживает широкий спектр символов. Для этого в начале вашей программы добавьте следующие строки:
1 2 3 4 5 | import sys try: sys.stdout.reconfigure(encoding='utf-8') except: pass |
Проверка запущенных процессов Firefox
Обязательно проверяйте запущенные браузеры Firefox. Не забывайте, что тут Вы не видите открыт FireFox или заркрыт.
Чтобы проверить, есть ли запущенные процессы Firefox на вашем виртуальном сервере, выполните следующую команду:
1 | ps aux | grep firefox |
Вы увидите список процессов, связанных с Firefox, если они есть.
Остановка всех процессов Firefox
Если вам необходимо остановить все запущенные процессы Firefox на вашем виртуальном сервере, вы можете использовать следующую команду:
1 | pkill firefox |
Лично я запускаю эту команду перед каждый запуской своей программы в планировщике крон.
Запуск программы по крону с использованием FireFox
Хоть мы и прописали запуск FireFox в переменнуж PATH, но при запуске программы через планировщик cron я столкнулас с тем, что FireFox не был найден.
Поэтому,. если Вы хотите запускать программу с использванием Firefox по крону, Вам нужно содлать исполняемый файл, например run_bot.sh со следующий содержимым
1 2 3 4 5 6 7 | #!/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 |
Ну и собстенно последнее, что мы сделаем это добавить задачу в крон
Запустите в теминале
1 | crontab -e |
В самом конце файл добавьте
1 | 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 на вашем виртуальном сервере для
