Scrapyd是一个用来部署和运行Scrapy项目的应用,由Scrapy的开发者开发。其可以通过一个简单的Json API来部署(上传)或者控制你的项目。
Scrapyd可以用来管理多个项目,并且每个项目还可以上传多个版本,不过只有最新的版本会被使用。
在安装并开启Scrapyd之后,它将会挂起一个服务来监听运行爬虫的请求,并且根据请求为每一个爬虫启用一个进程来运行。Scrapyd同样支持同时运行多个进程,进程的数量由max_proc和max_proc_per_cpu选项来限制。
windows 安装scrapyd以及使用
首先在终端安装 scrapyd 命令: pip install scrapyd
第二安装scrapyd-client ,我们也可以在 pycharm 中安装。
终端安装命令 : pip install scrapyd-client
测试scrapyd 是否安装成功如果是这样子就表示安装完成
然后我们打开浏览器输入 127.0.0.1:6800会出现这样一个页面表示scrapyd 安装成功。
下面就是让人头疼的问题了,官方文档上面说 使用命令:scrapyd-deploy -l 可以查看当前部署的爬虫项目,但是当我输入这段命令的时候显示这个命令不是内部或外部命令。
——解决方案:
在python 目录下的 Scripts文件中,我的路径是 “D:\App\python36\Scripts”,在下面添加一个scrapyd-deploy.bat文件
在里面添加:
@echo off
"D:\App\python36\
python.exe" "D:\App\python36\Scripts\scrapyd-deploy" %*
这里一定要用双引号,点引号有时可能不行所以我们尽量使用双引号。
下面我们设置这个项目下面的scrapy.cfg文档
设置scrapy.cfg
现在重新打开命令框,再运行scrapyd-deploy -l 就可以了,可以看到我这里的部署名称和端口信息
二、发布工程到我们的scrapyd
scrapyd-deploy target -p prject
这里target 为你的服务器命令,prject是你工程的名字,发布工程之前我们的scrapyd.cfg必须修改,上面我们已经修改过了,因此我的命令是:scrapyd-deploy zwb -p qikan
这里的话返回给我们的是一个json信息。
我们也可以点击他给我们的url
启动我们的爬虫
如用如下命令启动:curl http://localhost:6800/schedule.json -d project=PROJECT_NAME -d spider=SPIDER_NAME
PROJECT_NAME填入你爬虫工程的名字,SPIDER_NAME填入你爬虫的名字
所以我的名字是:curl http://localhost:6800/schedule.json -d project=qikan -d spider=careers
这里同样会返回json数据,但是我们可以在我们终端看到我们的爬虫项目已经跑起来了
终端的情况:
这里我看了一下scrapyd的jobs 可以看到这里已经有了两个工程,因为我跑了两次,当然现在爬虫还没有停止。
停止一个爬虫
curl http://localhost:6800/cancel.json -d project=PROJECT_NAME -d job=JOB_ID
PROJECT_NAME填入你爬虫工程的名字,SPIDER_NAME填入你爬虫的名字
停止我的爬虫工程,这只是简单的部署到本地