python 定时任务好 还是crontab_记录配置python爬虫定时任务crontab所踩过的坑

在刚开始配置爬虫定时爬取的时候选取了较为简单的time.sleep()这个函数,可能由于环境配置的问题或者是不知道什么玄学的问题。并不能正常生成.csv数据文件。

在换了几个方法后,最终决定采用crontab命令。

配置crontab的方法在网上都有很多写的很清楚。我在这也不做过多赘述。大家可以根据网上的教程来,如果遇见坑再来看我这篇文档会比较好。在文章最后也会放出一些我个人觉得比较好的学习crontab的网站。

1、查看cron.log文件提示No such file or directory

2f45e81ff168f41238f8a02fc2a0cbec.png

如果有遇到这个问题的一般是rsyslog文件下的crontab没有取消注释掉

在之前有用过crontab的一般不会出现这个问题

第一步修改rsyslog文件vi /etc/rsyslog.d/50-default.conf

第二步取消掉cron的注释#cron.* /var/log/cron.log

改为cron.* /var/log/cron.log

第三步重启rsyslog服务service rsyslog restart

第四步重启cron服务service cron restart

第五步查看日志文件tail -f /var/log/cron.log

这个时候你就能看到crontab在正常运行了

5dfb8f43accdd968f00e66d203dbc5c4.png

2.执行shell.sh提示没有scrapy这个模块

多条命令的话建议直接使用shell文件来执行定时crontab任务。一是为了美观,二是可以利用shell文件来定位我们的错误在哪里。

shell.shsource /home/zhangning/spider2/bin/activate #进入spider2虚拟环境,如果没有使用虚拟环境可以忽略此步骤

python3 /home/zhangning/juzhi/juzhi/spiders/begin.py #(在crontab中运行文件需要使用全路径)

以上是shell.sh文件最终的内容

在执行 sh shell.sh中会提示没有scrapy这个模块,原因是我们的路径没有进入到juzhi这个项目的下面,不能直接使用全路径的运行

原本文件中有一条cd命令:cd /home/zhangning/juzhi

但是在shell中,cd命令的运行好像会比较麻烦,所以我把切换目录的命令放在了我的python项目中begin.py文件中from scrapy import cmdline

import os

os.chdir('home/zhangning/juzhi') #cd到该目录下

cmdline.execute("scrapy crawl investment -o out.csv".split())

这时候就可以运行sh shell.sh 了。

3.执行shell.sh提示source:not found

原因是一大串,反正你只需要执行以下命令就可以了sudo dpkg-reconfigure dash

然后在弹出来的界面中选择NO

再次执行shell.sh就不会有任何问题了。

以上是我在配置crontab定时任务的时候遇到的一些问题,还有一些小问题就不在这里写出来了,如果有什么不明白的欢迎讨论。

crontab定时任务 linux tools

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值