python - 有什么方法可以通过 cron 作业在 python 中运行 selenium

标签 python selenium ubuntu

我创建了一个 python 脚本,它使用 selenium 下载一些文件,就像这样。

options = webdriver.ChromeOptions()
#file download path 
prefs = {'download.default_directory' : main_directory}
options.add_experimental_option('prefs', prefs)
options.add_argument('--headless')
options.add_argument('--no-sandbox')
options.add_argument('--disable-dev-shm-usage')
options.add_argument("--window-size=1920x1080")

driver = webdriver.Chrome(executable_path='chromedriver', options=options)
driver.get(panel_link)
当我在我的 ubuntu 18.04.5 服务器上的终端上执行此脚本时,它运行良好。
但是当这个脚本从 crontab 运行时,它总是在加载 chromedriver 时停止执行。
每次我都收到这个错误,我通过 cron 运行这个 python 脚本。Message: Service chromedriver unexpectedly exited. Status code was: -5我试过的:
 1. add python script directly in crontab 
 2. created other script ```runpython.sh``` and then run python script from there.
 3. created an apache server and tried to execute python script from php 
以上所有方法都无法正常工作。
请注意,当我直接执行时,此 python 脚本执行得很好,但通过 cron 执行时它不起作用。
计划:48 21 * * * export DISPLAY=:0 && python3 /root/script/application_file_download.py >> /home/log/cron.log 2>&1

最佳答案

您可以尝试几件事:

  • 为了理智,添加一个将某些内容写入日志文件的作业,以确保您的 cronjob 设置正确。* * * * */1 echo $(date)" cronjob ran" >> /home/<user>/cronlogs/logs.log
  • 请注意,路径应该是绝对路径。 CRON 将 PATH 限制为 /bin:/user/bin .如果您的命令位于不同的位置,您可以提供命令的完整路径
  • 检查 chromedriver 文件的执行权限。确保运行 cronjob 的用户具有所需的权限。 ls-l
  • 关于python - 有什么方法可以通过 cron 作业在 python 中运行 selenium,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71255632/

    相关文章:

    Python丢包

    python - 将 None 替换为 Null,到位

    Python psd_工具 : 'module' object has no attribute 'profile_frombytes'

    java - 使用 Selenium Grid 时的 ChromeDriver 日志记录

    android - 如何执行 shell 文件?

    python - 防止使用 Python 渲染某些 HTML 标签

    java - 在 Selenium Webdriver (java) 中发送的日期出现错误

    css - 使用 StoreValue 时,Selenium 声明 "This element has no value"

    c++ - 在 Netbeans 中调试基于 CMake 的应用程序

    ubuntu - 充当代理的 Nginx 容器