不足之处,望指教。
1.scrapyd到底是个啥?
一波官方解释:scrapyd是一个网页版管理scrapy的工具, scrapy爬虫写好后,可以用命令行运行,但是如果能在网页上操作就比较方便. scrapyd就是为了解决这个问题,能够在网页端查看正在执行的任务,也能新建爬虫任务,和终止爬虫任务,功能比较强大. 还有一个更加强大的国产工具 gerapy!
当然,gerapy后面也会做介绍!
2.这玩意怎么用?
1.服务器端
要想部署scrapy项目的服务器,需要在服务器上安装scrapyd,scrapyd是安装在服务器上的,可通过pip install scrapyd
安装,安装成功后,在服务器的D盘或其他盘新建一个专门用于项目部署的文件夹,然后在文件夹目录中通过cmd
命令进入黑窗口,输入scrapyd
注意 项目部署使用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.bat
bat文件是系统可以直接执行的文件,我们通过在cmd命令行可以直接运行的文件。
下面开始编辑这个bat文件,我的python安装在C:\Python36,这个在文件中需要和自己安装python的路径一致,在bat文件中写入如下数据,根据自己的路径写。@echo off
是用来关闭回显数据信息的,加上。
3.部署操作
上面的都做好了此时就可以发布项目了!
1.浏览器访问http://localhost:6800
,(我是在自己电脑同时安装服务端和开发端进行的测试,如是其他电脑,将localhost换成服务端的IP地址即可),打开页面,是这样的画风~
所以我们迫切的希望gerapy等界面看起来舒服的工具出现,nonono,scrapyd是最牛的!
2.下面开始修改爬虫项目配置
在IDE工具中自己的项目里 msite/scrapy.cfg
的文件,没错,修改它
[deploy:]
和下面的project
中,都要填写项目的名称
3.在爬虫文件夹中执行命令 scrapyd-deploy
,此时显示还没有项目已经部署
4.发布爬虫项目,部署到服务器
在IDE工具中,自己的项目下,命令行中输入scrapyd-deploy <s_project> -p <t_project> --version <version>
比如我的,项目名称mysite scrapyd-deploy mysite -p project mysite
上面的代码执行后,会在爬虫文件夹中自动生成文件,eggs中就是我们的项目文件,logs中是日志文件
image.png
注意:s_project:爬虫项目名称,scrapy.cfg文件中[deploy]选项后project名称
t_project:爬虫部署后项目的名称,可以自定义,一般和爬虫项目名称相同
version: 爬虫部署版本,默认时间戳[如无项目组规范,使用默认值即可]
如果当前文件夹中只有一个项目~直接通过scrpayd-deploy进行部署即可
切记:爬虫项目部署时,使用scrapy自动生成的各个模块开发的项目文件,其他无关文件无须添加
5.必须要有图啊
项目未部署时:
http://localhost:6800
中的Jobs页面
我踩的坑,请勿复踩!!!
图像 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
网友评论