Использование Selenium часто бывает самым удобным решением для определнных задач. Так как полностью иммитируются действия человека.
Но что делать, когда Selenium нужно использовать на виртуальном сервере. Ведь для работы нужна будет загрузка FireFox на сервер. А вот статья кому интересна также загрузка Google Chrome .
Когда мне понадобилось использовать Selenium на виртуальном серевере, я выбрада длля себя использование Selenium geckodriver и загрузисла Firefox.
В этом руководстве я расскажу подробно об установке и настройке Mozilla Firefox на виртуальном сервере для использования с Selenium geckodriver.
Виртуальный сервер, который я использую это традиционно Zomro
После того, как вы зарегистрировались, оплатили и создали сервер, вам потребуется войти в терминал сервера, чтобы продолжить работу. В этой части руководства расскажу, как выполнить вход в терминал с использованием программы PuTTY.
Теперь вы можете выполнять команды и работать с вашим виртуальным сервером через терминал.
Первое что Вам нужно сделать, это проверить версию Python. Убедитесь, что у вас установлена версия Python 3.x.x.
python3 --version Прежде чем начать установку Firefox, рекомендуется обновить список пакетов на вашем виртуальном сервере. Выполните следующую команду:
sudo apt update Для успешной установки и работы Firefox на виртуальном сервере необходимо установить некоторые зависимости. Выполните следующую команду:
sudo apt install python3-setuptools python3-wheel build-essential python3-dev Эта команда установит необходимые зависимости для работы с Python на вашем виртуальном сервере.
Для управления пакетами Python нам понадобится инструмент pip. Установите его с помощью следующей команды:
apt install python3-pip Для создания изолированного окружения Python на вашем виртуальном сервере, рекомендуется установить пакет python3-venv. Выполните следующую команду:
apt install python3-venv Теперь мы перейдем к загрузке и установке 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 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 на вашем виртуальном сервере.
Вы тестировали Вашу программу через компьютер и все было хорошо. Но теперь Вы на виртульаном сервере.
В некоторых случаях может возникнуть ошибка связанная с кодировкой, когда вы пытаетесь записать текст, содержащий символы, которые невозможно закодировать в выбранной кодировке. Если у вас возникла такая ошибка, вы можете попробовать указать, что кодировка stdout должна быть UTF-8, которая поддерживает широкий спектр символов. Для этого в начале вашей программы добавьте следующие строки:
import sys
try:
sys.stdout.reconfigure(encoding='utf-8')
except:
pass
Обязательно проверяйте запущенные браузеры Firefox. Не забывайте, что тут Вы не видите открыт FireFox или заркрыт.
Чтобы проверить, есть ли запущенные процессы Firefox на вашем виртуальном сервере, выполните следующую команду:
ps aux | grep firefox Вы увидите список процессов, связанных с Firefox, если они есть.
Если вам необходимо остановить все запущенные процессы Firefox на вашем виртуальном сервере, вы можете использовать следующую команду:
pkill 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 на вашем виртуальном сервере для
Если при открытие csv файла с помощью excel У все поехали ячейки - это простой… Read More
Простые шаги как происходит Загрузка проекта на Github и Автодеплой на сервер Сделайте работу проще! Read More
Миграция базы данных - помогают с этим библиотеки SQLAlchemy и Alembic. Read More
Основные Команды Git, которые точно пригодятся. Сохрани себе шпаргалку Git Read More
Установка PostgreSQL на сервер Read More
Как создать PrimaryKey в талице базы данных SQL [РЕШЕНО] Ошибка relation tablename_id_seq doesn't exist Read More