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其实就是一个服务器端,真正在部署爬虫的时候,我们需要两个东西:
- scrapyd (安装在服务器端)
- 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"}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步