栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

用crontab运行selenium(python)

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

用crontab运行selenium(python)

尝试从中启动浏览器最明显的问题

cron
是,即使您的计算机上运行了X,
DISPLAY
也未为从您的运行中的进程设置环境变量,
crontab
因此从那里启动浏览器将失败。

解决方案的范围从琐碎的到非常复杂的。一个简单的解决方案是,如果没有X运行并且将其手动设置

DISPLAY
:0
,则脚本将不会运行,并且将其手动设置为Ubuntu启动的默认X服务器的默认显示号。

例如,如果我将此命令放在一行的

command
列中
crontab
,Chrome会启动而不会出现问题:

DISPLAY=:0 google-chrome

用户特定的crontab文件中的完整行如下所示:

0 * * * *  DISPLAY=:0 google-chrome

如果您要运行一个通过selenium启动chrome的python脚本,则该行应如下所示:

0 * * * *  DISPLAY=:0 python my_script.py

命令字符串只是按原样发送到外壳,因此在上一个示例中,该字符串

DISPLAY=:0 pythonmy_script.py
仅会传递到外壳。通常的shell语法是将命令开始时立即给出的变量分配解释为设置环境变量。(
dash
and
肯定是这种情况,
bash
在大多数安装中,其中之一可能是默认的shell。)因此,shell解释的命令将环境变量
DISPLAY
设置为value
:0
,然后运行
pythonmy_script.py
。由于
python
从启动它的外壳程序继承了它的环境,因此变量
DISPLAY
:0
适用于它。

设置

DISPLAY=:0
像我看到前面设置变量
为下面的命令。也可以设置
DISPLAY
:0
由crontab中执行的所有命令。例如,在以下特定于用户的crontab中:

DISPLAY=:030 * * * *  google-chrome0  * * * *  python my_script.py

该行

DISPLAY=:0
设置了
DISPLAY
用于执行
google-chrome
和的环境变量
python my_script.py



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/426765.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号