Scrapy

scrapy-->scrapyd 爬虫项目部署

2018-11-30  本文已影响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

上一篇 下一篇

猜你喜欢

热点阅读