Scrapyd部署爬虫

准备工作

  • 安装scrapyd: pip install scrapyd

  • 安装scrapyd-client : pip install scrapyd-client

  • 安装curl:[安装地址](http://ono60m7tl.bkt.clouddn.com/curl.exe),安装完成以后将所在目录配置到环境变量中

开始部署

  1. 修改scrapy项目目录下的scrapy.cfg文件,修改如下

[deploy:JD_Spider]    #加上target   :name
url = http://localhost:6800/   #将前面的#删除
project = JD               #project的名字,可以使用默认的,当然也可以改变
  1. 在任意目录下的打开终端,输入scrapyd,观察是否运行成功,运行成功的话,就可以打开http://localhost:6800看是否正常显示,如果正常显示则看到下面的这张图,这里的JD是部署之后才能看到的,现在是看不到的,所以没出现也不要担心:

scrapyd

  1. 在项目的根目录下运行如下的命令:python E:\python2.7\Scripts\scrapyd-deploy target -p project,这里的E:python2.7Scripts是你的python安装目录,Scripts是安装目录下的一个文件夹,注意前面一定要加上python,target是在前面scrapy.cfg中设置的deploy:JD_Spider,JD_Spider就是target,project 是JD,因此这个完整的命令是python E:\python2.7\Scripts\scrapyd-deploy JD_Spider -p JD,现在项目就部署到上面了,这下网页上就有JD了,详情请见上图

  2. 验证是否成功,你可以在网页上看有没有显示你的工程名字,另外在根目录下输入python E:\python2.7\Scripts\scrapyd-deploy -l就能列出你所有部署过的项目了

  3. 启动爬虫:curl http://localhost:6800/schedule.json -d project=myproject -d spider=spider_name,这里的project填入的是项目名,spider_name填入的是你的爬虫中定义的name,运行我的实例完整的代码为:curl http://localhost:6800/schedule.json -d project=JD -d spider=spider,这里将会显示如下信息:

#这里的jobid比较重要,下面会用到这个取消爬虫
{"status": "ok", "jobid": "3013f9d1283611e79a63acb57dec5d04", "node_name": "DESKTOP-L78TJQ7"}
  1. 取消爬虫:curl http://localhost:6800/cancel.json -d project=myproject -d job=jobid,jobid就是上面的提到过的,如果取消我的这个实例代码如:curl http://localhost:6800/cancel.json -d project=JD -d job=3013f9d1283611e79a63acb57dec5d04,那么它的状态就会变成如下:

{"status": "ok", "prevstate": "running", "node_name": "DESKTOP-L78TJQ7"}
  1. 列出项目:curl http://localhost:6800/listprojects.json,下面将会出现你已经部署的项目

  2. 删除项目:curl http://localhost:6800/delproject.json -d project=myproject

  3. 列出版本:curl http://localhost:6800/listversions.json?project=myproject,这里的project是项目的名字,是在scrapy.cfg设置的

  4. 列出爬虫:curl http://localhost:6800/listspiders.json?project=myproject这里的project是项目的名字,是在scrapy.cfg设置的

  5. 列出job:curl http://localhost:6800/listjobs.json?project=myproject这里的project是项目的名字,是在scrapy.cfg设置的

  6. 删除版本:curl http://localhost:6800/delversion.json -d project=myproject -d version=r99,这里的version是自己的项目版本号,在删除之前需要查看版本号

更多文章请看本人博客


码猿技术专栏
486 声望108 粉丝