@albertalexandrov

Почему не запускается selenium (python) на сервере?

Здравствуйте!

Пытаюсь завести скрипт (cgi-bin) python на сервере (макхост, виртуальный хостинг). Код скрипта:

#!/usr/bin/python3.5

import os
import sys
import codecs

sys.stdout = codecs.getwriter('cp1251')(sys.stdout.detach())
sys.path.append('/home/httpd/vhosts/my_domain.ru/private/lib/python3.5/site-packages')

from selenium import webdriver

print('Content-type: text/html\r\n\r\n')

os.environ['MOZ_HEADLESS'] = '1'

driver = webdriver.Firefox(executable_path='/home/httpd/vhosts/my_domain.ru/private/geckodriver.exe')
driver.get('https://vk.com')


Однако, не работает. Traceback:

Traceback (most recent call last):
   File "telephone.py", line 17, in <module>
     driver = webdriver.Firefox(executable_path='/home/httpd/vhosts/my_domain.ru/private/geckodriver.exe')
   File "/home/httpd/vhosts/my_domain.ru/private/lib/python3.5/site-packages/selenium/webdriver/firefox/webdriver.py", line 148, in __init__
     self.service.start()
   File "/home/httpd/vhosts/my_domain.ru/private/lib/python3.5/site-packages/selenium/webdriver/common/service.py", line 98, in start
     self.assert_process_still_running()
   File "/home/httpd/vhosts/my_domain.ru/private/lib/python3.5/site-packages/selenium/webdriver/common/service.py", line 111, in assert_process_still_running
     % (self.path, return_code)
 selenium.common.exceptions.WebDriverException: Message: Service /home/httpd/vhosts/my_domain.ru/private/geckodriver.exe unexpectedly exited. Status code was: -4


Не могу понять, почему так. Предполагаю, что просто не установлен firefox.
  • Вопрос задан
  • 1398 просмотров
Пригласить эксперта
Ответы на вопрос 2
@deliro
Не могу понять, ты пытаешься exeшник запустить на линуксе?

P.S. Для сервера без монитора нужно эмулировать монитор (xvfb)
Ответ написан
@Sovetnikov
технический директор pulsprodaj.ru
Чтобы на Linux поставить geckodriver сделайте:
pip install geckodriver

И вы перепутали назначение executable_path, это на самом деле путь к выполняемому файлу браузера, а geckodriver.exe это только драйвер для Selenium, и это видимо версия для Windows.

Возьмите готовый Firefox с Selenium https://github.com/SeleniumHQ/docker-selenium
Если что подскажу как его кушать
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
22 нояб. 2024, в 12:20
10000 руб./за проект
22 нояб. 2024, в 11:53
3000 руб./за проект
22 нояб. 2024, в 11:51
20000 руб./за проект