爬虫程序定时启动crontab

注意:第一次进入crontab,选择vim编辑器

如果不小心选择了其他编辑器,执行以下代码即可

export EDITOR="/usr/bin/vim"

1.添加***.sh文件

 cd `dirname $0` || exit 1
 python ./main.py >> run.log 2>&1

2.添加可执行权限

sudo chmod +x myspder.sh

3.写入crontab中,按照下面规则即可,保存退出
在这里插入图片描述
4.查看执行日志

tail -f /var/log/cron  # 后面为文件路径,改为自己的
tail /var/log/cron  # 查看后面几行日志
ps -ef | grep 爬虫文件名  # 查看进程
kill -9 pid  # 杀死进程
### 实现 Python 网页爬虫自动启动的方法 对于希望在特定时间间隔内运行网页爬虫的任务,可以采用多种方式来安排这些任务。一种常见的方式是在 Linux 或类 Unix 系统中利用 `crontab` 来设定定时作业;而在 Windows 平台上,则可借助于 Windows Task Scheduler。 #### 使用 APScheduler 库实现自动化调度 为了更灵活地控制爬虫程序的执行时间和频率,在 Python 中推荐使用高级计划任务库 APScheduler (Advanced Python Scheduler)[^1]。此库允许开发者定义复杂的调度逻辑而无需依赖操作系统级别的工具。下面是一个简单的例子展示如何配置每天固定时间段内的随机时刻触发一次爬虫: ```python import random from datetime import timedelta from apscheduler.schedulers.blocking import BlockingScheduler def job(): print("Crawler is running...") try: # Your crawling code here... pass except Exception as e: logging.error(traceback.format_exc()) if __name__ == "__main__": sched = BlockingScheduler() start_time = '09:00' # 设定每日最早可能开始的时间点 end_time = '23:00' # 设定每日最晚结束的时间点 time_format = "%H:%M" delta = datetime.strptime(end_time, time_format) - \ datetime.strptime(start_time, time_format) rand_minutes = int(delta.total_seconds()/60 * random.random()) run_date = datetime.now().replace(hour=9, minute=0, second=0, microsecond=0)+timedelta(minutes=rand_minutes) sched.add_job(job, 'date', run_date=run_date) sched.start() ``` 这段代码通过计算给定范围内随机分钟数并将其应用于当天的具体日期上来决定何时首次运行爬虫函数 `job()` 。之后可以根据需求调整参数或者增加更多条件判断以适应不同的应用场景[^1]。 #### 利用 Windows Task Scheduler 自动化脚本 如果偏好图形界面操作或是想要简化部署流程的话,也可以考虑将上述 Python 脚本打包成 .exe 文件并通过 Windows 的内置功能——Task Scheduler 创建一个新的基本任务来进行定期调用。这种方式特别适合那些不熟悉命令行环境但又希望能够轻松设置周期性工作的用户群体[^2]。 创建新任务时需注意选择合适的触发器(Trigger),比如按日/周/月重复动作,并确保指定了正确的操作类型为“启动程序”,同时提供完整的路径指向已编译好的应用程序文件以及任何必要的参数选项。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值