利用scrapy-client发布爬虫的远程服务器
一.环境准备
远程服务器必须装有scapyd,我们使用的机器必须有scrapy-client(我这里是windows),并确保这两者正常安装并启动。
二.客户端准备上传
首先进入到爬虫项目的根文件夹:
scrapyd-deploy
这样就是成功了。
三.配置爬虫项目
打开爬虫项目中的scrapy.cfg文件,这个文件就是给scrapyd-deploy使用的
将url这行代码解掉注释,并且给设置你的部署名称
再次执行scrapyd-deploy -l 启动服务,可以看到设置的名称
四.打包项目
1.开始打包前,执行命令:scrapy list,这个命令执行成功说明可以打包了,如果没执行成功说明还有工作没完成
这边会显示的是我的爬虫项目中具有的爬虫名称:jd
2.执行打包命令: scrapyd-deploy 部署名称 -p 项目名称
如下显示表示scrapy项目打包成功
如果出现
版本不对,建议安装pip install scrapyd==1.1.1,直到你的egg文件夹中有项目即可
3.上传运行爬虫
curl http://远程ip:6800/schedule.json -d project=项目名称 -d spider=爬虫名称
执行后,如果出现
则爬虫运行成功
可以去网页中106.12.112.139::6800查看爬虫运行状态
到此为止,scrapyd部署已经完成了,但是如果我们想要控制爬虫是很难的,下面几个命令是控制爬虫的进程,不妨试一试。
五.管理
停止爬虫
curl http://localhost:6800/cancel.json -d project=scrapy项目名称 -d job=运行ID
删除scrapy项目
注意:一般删除scrapy项目,需要先执行命令停止项目下在远行的爬虫
curl http://localhost:6800/delproject.json -d project=scrapy项目名称
查看有多少个scrapy项目在api中
curl http://localhost:6800/listprojects.json
查看指定的scrapy项目中有多少个爬虫
curl http://localhost:6800/listspiders.json?project=scrapy项目名称
总结几个请求url,通过在浏览器输入,也可以监控爬虫进程。
1、获取状态 http://127.0.0.1:6800/daemonstatus.json 2、获取项目列表 http://127.0.0.1:6800/listprojects.json 3、获取项目下已发布的爬虫列表 http://127.0.0.1:6800/listspiders.json?project=myproject 4、获取项目下已发布的爬虫版本列表 http://127.0.0.1:6800/listversions.json?project=myproject 5、获取爬虫运行状态 http://127.0.0.1:6800/listjobs.json?project=myproject 6、启动服务器上某一爬虫(必须是已发布到服务器的爬虫) http://127.0.0.1:6800/schedule.json (post方式,data={“project”:myproject,“spider”:myspider}) 7、删除某一版本爬虫 http://127.0.0.1:6800/delversion.json (post方式,data={“project”:myproject,“version”:myversion}) 8、删除某一工程,包括该工程下的各版本爬虫 http://127.0.0.1:6800/delproject.json(post方式,data={“project”:myproject})
这样输入命令是不是很繁琐,命令太多不容易记,命令输入错误,得不到想要的结果,你在学习中是否遇到这种问题,因此,gerapy就诞生了,这个工具可以让你的工作更加便捷、高效(不推荐在工作中使用此工具)
注意:如出现如下错误:
回退版本
Scrapy==1.6.0 Twisted==18.9.0
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器