美文网首页Scrapy
scrapy-->scrapyd 爬虫项目部署

scrapy-->scrapyd 爬虫项目部署

作者: 也是如此 | 来源:发表于2018-11-30 21:09 被阅读70次
    不足之处,望指教。

    1.scrapyd到底是个啥?

    一波官方解释:scrapyd是一个网页版管理scrapy的工具, scrapy爬虫写好后,可以用命令行运行,但是如果能在网页上操作就比较方便. scrapyd就是为了解决这个问题,能够在网页端查看正在执行的任务,也能新建爬虫任务,和终止爬虫任务,功能比较强大. 还有一个更加强大的国产工具 gerapy!
    当然,gerapy后面也会做介绍!

    2.这玩意怎么用?

    1.服务器端

    要想部署scrapy项目的服务器,需要在服务器上安装scrapyd,scrapyd是安装在服务器上的,可通过pip install scrapyd 安装,安装成功后,在服务器的D盘或其他盘新建一个专门用于项目部署的文件夹,然后在文件夹目录中通过cmd命令进入黑窗口,输入scrapyd

    图像 001.png

    注意 项目部署使用6800端口,上面的图中可以看到。

    这样服务端的项目部署就启动了

    2.开发端

    安装

    需在开发端安装scrapyd-client,可通过pip install scrapyd-client安装

    注意

    注意!!scrapyd-client默认支持unix/linux/macOS平台,Windows中安装之后不能直接使用,那么,我们该何去何从.......
    幸好我们聪明的朋友们帮我们解决了这个问题,下面来看一下怎么处理:

    解决

    在我们安装完scrapyd-client后,会在我们的python安装目录下的Scripts文件夹中出现一个名字叫做scrapyd-deploy 的神奇的没有后缀名的文件,还不是因为他不支持Windows!!!(Scripts中是python使用过程中安装的其他模块)
    那么我们下面的操作就是将这个问题解决。
    在python根目录下的Scripts中新建一个名为scrapyd-client.txt,没错,我们就是新建一个文件来替代他,然后把txt文件的后缀名改为scrapyd-client.batbat文件是系统可以直接执行的文件,我们通过在cmd命令行可以直接运行的文件。
    下面开始编辑这个bat文件,我的python安装在C:\Python36,这个在文件中需要和自己安装python的路径一致,在bat文件中写入如下数据,根据自己的路径写。@echo off 是用来关闭回显数据信息的,加上。

    image.png
    3.部署操作

    上面的都做好了此时就可以发布项目了!
    1.浏览器访问http://localhost:6800,(我是在自己电脑同时安装服务端和开发端进行的测试,如是其他电脑,将localhost换成服务端的IP地址即可),打开页面,是这样的画风~

    image.png

    所以我们迫切的希望gerapy等界面看起来舒服的工具出现,nonono,scrapyd是最牛的!

    2.下面开始修改爬虫项目配置
    在IDE工具中自己的项目里 msite/scrapy.cfg的文件,没错,修改它
    [deploy:]和下面的project中,都要填写项目的名称

    image.png

    3.在爬虫文件夹中执行命令 scrapyd-deploy,此时显示还没有项目已经部署

    image.png

    4.发布爬虫项目,部署到服务器
    在IDE工具中,自己的项目下,命令行中输入scrapyd-deploy <s_project> -p <t_project> --version <version> 比如我的,项目名称mysite scrapyd-deploy mysite -p project mysite

    image.png
    上面的代码执行后,会在爬虫文件夹中自动生成文件,eggs中就是我们的项目文件,logs中是日志文件
    image.png

    注意:s_project:爬虫项目名称,scrapy.cfg文件中[deploy]选项后project名称
    t_project:爬虫部署后项目的名称,可以自定义,一般和爬虫项目名称相同
    version: 爬虫部署版本,默认时间戳[如无项目组规范,使用默认值即可]
    如果当前文件夹中只有一个项目~直接通过scrpayd-deploy进行部署即可
    切记:爬虫项目部署时,使用scrapy自动生成的各个模块开发的项目文件,其他无关文件无须添加

    5.必须要有图啊
    项目未部署时:
    http://localhost:6800中的Jobs页面

    image.png
    我踩的坑,请勿复踩!!!
    图像 003.png

    通过上面的4中的部署发布后,自己的项目已经到服务器了,这就是我已经上传的爬虫项目!


    image.png

    后面的log,可以查看所有的日志

    6.其他高级操作

    远程启动爬虫项目
    
    curl [<u>http://localhost:6800/scheduler.json</u>](http://localhost:6800/scheduler.json) -d project=myproject -d spider=myspider
    
    远程停止/删除爬虫项目-工作计划job
    
    curl [<u>http://localhost:6800/cancel.json</u>](http://localhost:6800/cancel.json) -d project=<PROJECT_NAME> -d job=<JOB_ID>
    
    查看服务器负载状态
    
    curl [<u>http://localhost:6800/daemonstatus.json</u>](http://localhost:6800/daemonstatus.json)
    
    查看服务器中所有的项目信息
    
    curl [<u>http://localhost:6800/listprojects.json</u>](http://localhost:6800/listprojects.json)
    
    查看某个特定项目的爬虫列表信息  curl [<u>http://localhost:6800/listspiders.json?project=myproject</u>](http://localhost:6800/listspiders.json?project=myproject)
    
    查看指定项目的任务列表
    
    curl [<u>http://localhost:6800/listjobs.json</u>](http://localhost:6800/listjobs.json)
    
    删除某个项目在服务器上的某个版本
    
    curl [<u>http://localhost:6800/delversion.json</u>](http://localhost:6800/delversion.json) -d project=myproject -d version=1543545055
    
    删除项目在服务器上所有版本
    
    curl [<u>http://localhost:6800/delproject.json</u>](http://localhost:6800/delproject.json) -d project=myproject
    
    

    相关文章

      网友评论

        本文标题:scrapy-->scrapyd 爬虫项目部署

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