web项目如何设置定时服务器,服务器采用scrapyd 部署scrapy项目并设置定时任务

开始之前轻自行安装好python和创建好虚拟环境

python版本:python3.6

虚拟环境:virtualenv

将代码上传到服务器

方式一(本地):scp name.zip root@xxxx:/home/src

/home/src为服务器项目存放地址

方式二:将代码上传到github,再将代码克隆下来

具体步骤

创建虚拟环境: virtualenv --no-site-packages -p python路径 虚拟环境名字

进入虚拟环境:source python_env/env/bin/activate 根据自己虚拟环境路径而定

安装程序需要的库,例如scrapy,requests等

安装scrapyd:pip install scrapyd

安装scrapyd-client: pip install scrapyd-client

编辑scrapyd配置文件

1.在/etc/下创建 scrapyd

2.进入scrapyd路径下,直接 vim scrapyd.conf编辑文件,写入如下内容:

[scrapyd]

eggs_dir = eggs

logs_dir = logs

items_dir =

jobs_to_keep = 5

dbs_dir = dbs

max_proc = 0

max_proc_per_cpu = 10

finished_to_keep = 100

poll_interval = 5.0

bind_address = 0.0.0.0

http_port = 6800

debug = off

runner = scrapyd.runner

application = scrapyd.app.application

launcher = scrapyd.launcher.Launcher

webroot = scrapyd.website.Root

[services]

schedule.json = scrapyd.webservice.Schedule

cancel.json = scrapyd.webservice.Cancel

addversion.json = scrapyd.webservice.AddVersion

listprojects.json = scrapyd.webservice.ListProjects

listversions.json = scrapyd.webservice.ListVersions

listspiders.json = scrapyd.webservice.ListSpiders

delproject.json = scrapyd.webservice.DeleteProject

delversion.json = scrapyd.webservice.DeleteVersion

listjobs.json = scrapyd.webservice.ListJobs

daemonstatus.json = scrapyd.webservice.DaemonStatus

输入 scrapyd-deploy -h 检测是否安装成功

060ffe018491

image.png

进入到你scarpy项目的目录下,修改scrapy.cfg文件

060ffe018491

image.png

取消url这一行的注释,并将IP地址修改为自己服务器的IP地址

部署爬虫 :scrapyd-deploy -p projectname 或者 scrapyd-deploy。response响应200,表示部署成功

运行爬虫:curl http://服务器IP地址:6800/schedule.json-d project=projectname -d spider=spidername

关闭爬虫 :curl http://localhost:6800/cancel.json -d project=projectname -d job='jobid'

设置定时任务:

创建一个专门的shell文件夹,在shell文件夹下编写shell脚本,我这里创建的shell脚本名字为u17.sh,编辑如下内容

#!/bin/bash

source /home/python_env/env/bin/activate

cd /home/src/U17

curl http://123.56.16.18:6800/schedule.json -d project=U17 -d spider=yaoqi

1.第一行表示进入到虚拟环境

2.第二行表示进入到自己scrapy项目

3.第三行表示运行命令

安装 crontab用来设置定时任务:yum install crontab

启动 crontab :systemctl enable crond 或者 service crond start

如果使用service crond start 出现以下报错:

出现Redirecting to /bin/systemctl start crond.service,

即service crond start 需要替换为systemctl方式

编辑crontab服务文件:crontab -e,编辑内容如下:

50 15 19 * * sh /home/shell/U17.sh > /home/shell/spider.log

我这里表示下午3点50分执行U17.sh脚本,并输入日志到指定路径下。crontab的语法规则格式不太清楚的朋友请自己百度

展示运行效果图

060ffe018491

image.png

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值