Scrapyd 和 Scrapyd-Client

Scrapyd

  • Scrapyd是一个服务,用来运行scrapy爬虫的
  • 它允许你部署你的scrapy项目以及通过HTTP JSON的方式控制你的爬虫

安装

pip install scrapyd

安装完成后,在你当前的python环境根目录,有一个scrapyd.exe,打开命令行,输入scrapyd,如下图:

PS C:\Windows\system32> scrapyd
2019-04-22T12:28:13+0800 [-] Loading d:\programdata\anaconda3\lib\site-packages\scrapyd\txapp.py...
2019-04-22T12:28:15+0800 [-] Scrapyd web console available at http://127.0.0.1:6800/
2019-04-22T12:28:15+0800 [-] Loaded.

scrapyd就运行起来了,访问127.0.0.1:6800即可看到可视化界面。

 安装scrapy-client

scrapyd其实就是一个服务器端,真正在部署爬虫的时候,我们需要两个东西:

  1. scrapyd (安装在服务器端)
  2. scrapy-client (客户端)

scrapy-client,它允许我们将本地的scrapy项目打包发送到scrapyd 这个服务端
安装 scrapy-client:pip install scrapy-client

问题处理:

接下来就是让人很头疼的scrapyd-deploy问题了,查看官方文档上说用

scrapyd-deploy -l

可以看到当前部署的爬虫项目,但是当我输入这段命令的时候显示这个命令不存在或者有错误、不合法之类的。

解决方案:

在你的python目录下的Scripts文件夹中,我的路径是“D:\program files\python2.7.0\Scripts”,增加一个scrapyd-deploy.bat文件。

内容为:

@echo off
D:\ProgramData\Anaconda3\python D:\ProgramData\Anaconda3\Scripts\scrapyd-deploy %*

然后重新打开命令框,再运行scrapyd-deploy -l 就可以了。

设置

在scrapy.cfg中修改配置

[deploy]
url = http://127.0.0.1:6800/  #部署到目标服务器的地址
project = qu   #project 就是工程名

部署

在scrapy.cfg同级目录下运行

scrapyd-deploy

运行结果如下:

Packing version 1555914829
Deploying to project "qu" in http://127.0.0.1:6800/addversion.json
Server response (200):
{"node_name": "DESKTOP-V7P52KL", "status": "ok", "project": "qu", "version": "1555914829", "spiders": 1}

运行

其中project为项目名称,可以根据实际情况自己指定。

curl http://localhost:6800/schedule.json -d project=qu -d spider=qutoutiao

运行结果:

{"node_name": "DESKTOP-V7P52KL", "status": "ok", "jobid": "1d6dd56e64be11e989aeb881980dbd3b"}

停止

curl http://localhost:6800/cancel.json -d project=quJOB_ID -d job=JOB_ID

运行结果:

{"node_name": "DESKTOP-V7P52KL", "status": "ok", "prevstate": "running"}

猜你喜欢

转载自blog.csdn.net/qq_41179280/article/details/89450120
今日推荐