scrapy 中crontab 的脚本的坑:
1,我创建了一个py文件。里面放入了scrpy执行命令。
crontab 第一次编写:
/root/.virtualenvs/py3/bin/python /mydata/data_statistics_and_mining/statistics/run.py >> /mydata/logs/run_$(date +\%F_\%H_\%M_\%S).log 2>&1 &
报错:
Scrapy 1.5.1 - no active project
无法找到项目路径:
网上说到当前目录在执行:
换成:
cd /mydata/data_statistics_and_mining/statistics /root/.virtualenvs/py3/bin/python run.py >> /mydata/logs/run_$(date +\%F_\%H_\%M_\%S).log 2>&1 &
再次报错:
crontab sh: scrapy: command not found
找不到scrapy了。我用的是虚拟环境
所以需要用虚拟环境中的scrapy
cd /mydata/data_statistics_and_mining/statistics /root/.virtualenvs/py3/bin/scrapy crawl test >> /mydata/logs/run_$(date +\%F_\%H_\%M_\%S).log 2>&1 &
把py的scrapy直接拿出来,
ok
总结:
在虚拟环境下,用crontab定时任务,执行python脚本运行一样,scrapy需要指定绝对路径 ,如果用虚拟环境要指明虚拟环境下的绝对路径。