Scrapyd部署爬虫

作者: 爱撒谎的男孩 | 来源:发表于2017-04-24 11:00 被阅读167次

    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是部署之后才能看到的,现在是看不到的,所以没出现也不要担心:
    scrapydscrapyd
    1. 在项目的根目录下运行如下的命令:python E:\python2.7\Scripts\scrapyd-deploy target -p project,这里的E:\python2.7\Scripts\是你的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了,详情请见上图
    1. 验证是否成功,你可以在网页上看有没有显示你的工程名字,另外在根目录下输入python E:\python2.7\Scripts\scrapyd-deploy -l就能列出你所有部署过的项目了
    1. 启动爬虫: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,下面将会出现你已经部署的项目
    1. 删除项目:curl http://localhost:6800/delproject.json -d project=myproject
    1. 列出版本:curl http://localhost:6800/listversions.json?project=myproject,这里的project是项目的名字,是在scrapy.cfg设置的
    1. 列出爬虫:curl http://localhost:6800/listspiders.json?project=myproject这里的project是项目的名字,是在scrapy.cfg设置的
    1. 列出job:curl http://localhost:6800/listjobs.json?project=myproject这里的project是项目的名字,是在scrapy.cfg设置的
    1. 删除版本:curl http://localhost:6800/delversion.json -d project=myproject -d version=r99,这里的version是自己的项目版本号,在删除之前需要查看版本号

    更多文章请看本人博客

    相关文章

      网友评论

        本文标题: Scrapyd部署爬虫

        本文链接:https://www.haomeiwen.com/subject/jjnuzttx.html