gpt4 book ai didi

python - RPI 上的 Selenium Webdriver 拒绝来自 Crontab 的连接,可从终端运行

转载 作者:行者123 更新时间:2023-12-01 08:12:55 27 4
gpt4 key购买 nike

我在我的树莓派上有一个完美运行的 python 脚本,可以打开一个网站,导航到特定部分,复制一些文本,保存它,然后将其与其他内容进行比较。当我从终端启动它时效果很好。

但是当我将其作为 cronjob 时,它失败并显示消息“浏览器似乎在我们连接之前已退出。如果您在 FirefoxBinary 构造函数中指定了 log_file,请检查它以获取详细信息。”所以不起作用的部分是:

from selenium import webdriver

try:
driver = webdriver.Firefox()
except Exception as e:
print(e)

正如你所看到的,我没有指定日志路径,因为我真的不知道如何指定。因此,如果您能告诉我这一点,我将很乐意尝试实现它并获取日志。

要让它作为 cronjob 启动,您需要做什么特别的事情吗?我用

来调用它
*/1 * * * * root cd /home/pi/Desktop && sudo python WebAlert.py >> /var/log/myjob.log 2>&1

从终端它可以使用 python WebAlert.py

非常感谢你们,我没有主意了。

编辑我改变了一些行。我添加了这个:binary = FirefoxBinary('/usr/bin/iceweasel')

我像这样更改了驱动程序:

driver = webdriver.Firefox(executable_path=r'/usr/local/bin/geckodriver', firefox_binary=binary)

用这个在 crontab 中调用它

cd /home/pi/Desktop && sudo ../../../usr/bin/python3 WebAlert.py >> /var/log/mylog.log

产生以下错误:

Traceback (most recent call last): File "/home/pi/Desktop/WebAlert.py", line 37, in driver = webdriver.Firefox(executable_path=r'/usr/local/bin/geckodriver', firefox_binary=binary) File "/usr/local/lib/python3.5/dist-packages/selenium/webdriver/firefox/webdriver.py", line 174, in init keep_alive=True) File "/usr/local/lib/python3.5/dist-packages/selenium/webdriver/remote/webdriver.py", line 157, in init self.start_session(capabilities, browser_profile) File "/usr/local/lib/python3.5/dist-packages/selenium/webdriver/remote/webdriver.py", line 252, in start_session response = self.execute(Command.NEW_SESSION, parameters) File "/usr/local/lib/python3.5/dist-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute self.error_handler.check_response(response) File "/usr/local/lib/python3.5/dist-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response raise exception_class(message, screen, stacktrace) selenium.common.exceptions.WebDriverException: Message: connection refused

最佳答案

在启动驱动程序之前添加以下代码解决了我的问题:

from pyvirtualdisplay import Display 
display = Display(visible=0, size=(1024, 768))
display.start()

关于python - RPI 上的 Selenium Webdriver 拒绝来自 Crontab 的连接,可从终端运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55128812/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com