Как исправить ошибку geckodriver при запуске InstaPy в ОС raspberry pi?

#selenium #selenium-webdriver #raspberry-pi #instapy

Вопрос:

Недавно я установил InstaPy и скачал один стандартный скрипт в Интернете. Я знаю, что в коде с открытым исходным кодом нет ничего плохого, и на форумах говорится, что нужно загрузить geckodriver. Однако я не нашел подходящего решения для установки geckodriver, так что, ребята, не могли бы вы сообщить мне, как лучше всего это исправить?

Ошибка:

 >>> %Run basic_follow_unfollow_activity.py
InstaPy Version: 0.6.13
 ._.  ._.  ._.  ._.  ._.  ._.  ._.  ._. 
Workspace in use: "/home/pi/InstaPy"
Error, unable to determine correct filename for 32bit linux
Traceback (most recent call last):
  File "/home/pi/Desktop/basic_follow_unfollow_activity.py", line 36, in <module>
    headless_browser=False)
  File "/home/pi/.local/lib/python3.7/site-packages/instapy/instapy.py", line 338, in __init__
    geckodriver_log_level,
  File "/home/pi/.local/lib/python3.7/site-packages/instapy/browser.py", line 122, in set_selenium_local_session
    driver_path = geckodriver_path or get_geckodriver()
  File "/home/pi/.local/lib/python3.7/site-packages/instapy/browser.py", line 38, in get_geckodriver
    sym_path = gdd.download_and_install()[1]
  File "/home/pi/.local/lib/python3.7/site-packages/webdriverdownloader/webdriverdownloader.py", line 177, in download_and_install
    show_progress_bar=show_progress_bar)
  File "/home/pi/.local/lib/python3.7/site-packages/webdriverdownloader/webdriverdownloader.py", line 129, in download
    download_url = self.get_download_url(version, os_name=os_name, bitness=bitness)
  File "/home/pi/.local/lib/python3.7/site-packages/webdriverdownloader/webdriverdownloader.py", line 324, in get_download_url
    raise RuntimeError(info_message)
RuntimeError: Error, unable to determine correct filename for 32bit linux
 

Я попробовал следующие решения:

  1. Эта ссылка на форуме для установки geckodriver — https://www.raspberrypi.org/forums/viewtopic.php?t=167292
  2. Установлен firefox ESR в терминале — sudo apt-get install firefox-esr

Ответ №1:

У меня были похожие проблемы с запуском geckodriver на моем Pi. Если я правильно помню, была проблема с опорой для РУК. В итоге я переключился на chromedriver.

вы можете легко установить его с помощью:
sudo apt install chromium-chromedriver

после этого вы можете использовать его без какого-либо исполняемого пути, как это:

 from selenium import webdriver

driver = webdriver.Chrome()
 

Комментарии:

1. спасибо за предложение, но Instapy использует firefox по умолчанию, поэтому не может его изменить. Но я полагаю, что так оно и есть.

Ответ №2:

Инструкция по установке Geckodrive приведена в документации instapy по этой ссылке — https://github.com/InstaPy/instapy-docs/blob/master/How_Tos/How_to_Raspberry.md

Релизы GeckoDriver можно найти в: https://github.com/mozilla/geckodriver/releases. Последняя версия ARM по состоянию на 2019-08-16-v0.23.

Выполните следующие действия:

 1) wget https://github.com/mozilla/geckodriver/releases/download/v0.23.0/geckodriver-v0.23.0-arm7hf.tar.gz
2) tar -xvzf geckodriver-v*
3) chmod  x geckodriver
4) sudo cp geckodriver /usr/local/bin/
 

Убедитесь, что /usr/local/bin находится в ПУТИ вашей оболочки

Установите InstaPy

 1) sudo apt-get install python3-pip
2) python3 -m pip install --user instapy
3) sudo reboot (optional)
 

Завершение установки Firefox

 1) sudo pip3 install future
2) sudo apt-get install xvfb
3) sudo pip3 install pyvirtualdisplay