Ubuntu<使用crontab执行定时爬虫任务>

本文介绍在Ubuntu系统中使用Crontab进行定时任务配置的过程,特别是针对Python爬虫程序的执行。解决了从Windows环境迁移过来的问题,并详细记录了在Crontab环境下找到Scrapy的具体路径这一关键步骤。

之前在windows下使用python 脚本调用爬虫程序,做成定时任务的时候,都挺顺利的,以下是代码video_command.py

# -*- coding: utf-8 -*-
# !/usr/bin/python2.7
import os
import time
def run_spider(spider_name, folder_name):
    try:       
        command1 = 'scrapy crawl ' + str(spider_name)
        os.chdir('/python/shixi/' + str(folder_name))
        os.system(command1)
        #    print '******************'
        print time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))
        #    print 'success'
        print command1
        print "----------------------------->>>>>>>>>>>>>>>>>>>done<<<<<<----------------------"
    except Exception, e:
        print e
if __name__ == '__main__':
    run_spider('qiyi1_spider', 'QIYI_movie')

然后创建了一个bat文件,然后使用windows自带的定时任务,调一下bat文件就可以了。

今天想要在Ubuntu上使用crontab来定时跑爬虫程序,于是将以上代码搬到Ubuntu上去,进入到项目的路径下,使用
scrapy crawl xxxx来执行的时候都能很真长的执行,使用shell运行video_command.py也能正常运行。但是放到crontab里边却死活跑不起来,以下是crontab -e中的代码:

53 15 * * *  sh /python/shixi/crontab3/start_crawl.sh >>/python/shixi/crontab3/log.text 2>&1

最后troubleshotting才发现问题的根源是在video_command.py里边,虽然直接运行爬虫,或者使用脚本来运行爬虫都能成功,但是不知道crontab内部是怎么写的,放上去之后,就找不到scrapy,于是加上以下路径就能找到了
这里写图片描述

完整的代码是:

# -*- coding: utf-8 -*-
# !/usr/bin/python2.7
import os
import time
def run_spider(spider_name, folder_name):
    try:       
        command1 = '/usr/local/bin/scrapy crawl ' + str(spider_name)
        os.chdir('/python/shixi/' + str(folder_name))
        os.system(command1)
        #    print '******************'
        print time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))
        #    print 'success'
        print command1
        print "----------------------------->>>>>>>>>>>>>>>>>>>done<<<<<<----------------------"
    except Exception, e:
        print e
if __name__ == '__main__':
    run_spider('qiyi1_spider', 'QIYI_movie')
### 购买套餐 在阿里云官网,可根据自身爬虫业务需求来选择合适的云服务器ECS套餐。要综合考虑系统配置,如CPU核心数、内存大小、存储容量等,同时也要关注网络带宽。例如,如果爬虫任务需要频繁进行数据交互,就应选择网络带宽较大的套餐。购买时要选择合适的操作系统镜像,像Linux的Ubuntu或CentOS,这些系统对Python和Selenium的支持较好。 ### 环境搭建 - **安装Python**:登录到购买的阿里云服务器,对于Ubuntu系统,可使用如下命令安装Python 3: ```bash sudo apt update sudo apt install python3 ``` - **安装Selenium**:使用pip来安装Selenium库,命令如下: ```bash pip install selenium ``` - **安装浏览器驱动**:若使用Chrome浏览器,需下载对应版本的ChromeDriver,并将其添加到系统的环境变量中。以Ubuntu为例,可使用以下命令将下载好的ChromeDriver移动到`/usr/local/bin`目录: ```bash sudo mv chromedriver /usr/local/bin ``` ### 脚本编写 以下是一个简单的使用Selenium进行网页爬取的Python脚本示例: ```python from selenium import webdriver from selenium.webdriver.chrome.service import Service # 设置ChromeDriver路径 service = Service('/usr/local/bin/chromedriver') driver = webdriver.Chrome(service=service) # 打开网页 driver.get('https://www.example.com') # 获取网页标题 title = driver.title print(f'网页标题: {title}') # 关闭浏览器 driver.quit() ``` ### 定时任务设置 可使用Linux系统的`crontab`来设置定时任务。首先,使用以下命令编辑`crontab`文件: ```bash crontab -e ``` 然后,在文件中添加定时任务,例如每天凌晨2点执行上述Python脚本: ```plaintext 0 2 * * * /usr/bin/python3 /path/to/your/script.py ``` 其中,`/usr/bin/python3`是Python解释器的路径,`/path/to/your/script.py`是Python脚本的路径。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值