请教一下如何对多个服务器上的爬虫进行管理

2020-07-01 16:25:30 +08:00
 zzxy001
我最近遇到一个问题。我用 python 写了一个 selenium 爬虫,自动处理一些任务。现在放在 4 个 windows 服务器上,
我更新爬虫文件都是用远程桌面连接,将新代码复制粘贴进去,然后关闭正在运行的爬虫程序,再打开新更换的。
现在还好,以后服务器多了,这样手动维护总感觉不太对劲。
请教一下有什么好的办法没有?如何能够自动更新代码并在更新后自动重启爬虫 python 程序?有什么工具可以使用吗?谢谢!
3863 次点击
所在节点    Python
30 条回复
Latin
2020-07-01 16:27:32 +08:00
稍等会,会有人过来推荐的
zzxy001
2020-07-01 16:30:16 +08:00
还请大佬们指点迷津,百度了半天也没找到好的解决办法
scukmh
2020-07-01 16:32:29 +08:00
webhook 它不香嘛?
Ultraman
2020-07-01 16:33:06 +08:00
不负责任猜测哦,开个 git 仓库,本地改完推上去,服务端写个脚本定时往回拉然后关掉旧的开新的。虽然比较糙。
wysnylc
2020-07-01 16:36:27 +08:00
所有的项目最终都要考虑分布式
lenqu
2020-07-01 16:38:02 +08:00
容器化解决的就是这个问题,常规 k8s,简单 shell 脚本就能实现
zzxy001
2020-07-01 16:42:07 +08:00
目前是这个问题,以后项目可能需要根据任务的不同动态启动不同的 selenium 爬虫程序,让每个服务器都不会空闲。
我属于小白一个,感谢大家。大家提的建议我都会去百度学习,看看能不能实现我想要的功能
zzxy001
2020-07-01 16:43:40 +08:00
@lenqu 能不能稍微详细讲一下思路,我从哪里可以入手
MrTreasure
2020-07-01 16:44:44 +08:00
找一个 ssh 的库,写脚本,把你这些手动操作的步骤都写成脚本
zzxy001
2020-07-01 16:46:44 +08:00
@MrTreasure 是 shell 脚本可以完成这些步骤吗?
zzxy001
2020-07-01 16:51:42 +08:00
@MrTreasure 刚刚初步搜了一下,shell 脚本是 Linux 系统,window 可以用吗
la2la
2020-07-01 17:00:03 +08:00
使用工具是有成本的,如果服务器或者爬虫的数量不是特别多的话,可以写个脚本,在开发环境测试后,运行脚本把文件分配到服务器上,顺便重启。
raphael008
2020-07-01 17:06:31 +08:00
linux->ansible
windows->powershell
matepi
2020-07-01 17:12:23 +08:00
搭 Git

爬虫的任务进程以外,再开个守护性进程。守护进程负责从 Git 上拉;拉完杀了重启任务进程

守护性进程还可以做些例行任务管控、查询任务进度之类的的动作,和爬虫执行任务进程解耦分离

守护进程挂到 windows 服务自启。
kalago
2020-07-01 17:13:15 +08:00
scrapyd 不能满足你这个需求吗?
Saurichthys
2020-07-01 17:32:47 +08:00
xx-job 维护就好了
luocjv
2020-07-01 17:33:09 +08:00
代码加版本控制推荐 git, 可以自己搭建 gitlab 或者用 github 之类的,然后改完代码用 webhook 触发多个服务器上的更新代码脚本并重启服务
wiken
2020-07-01 18:00:14 +08:00
git + webhook
tikazyq
2020-07-01 18:08:03 +08:00
分布式爬虫管理平台 crawlab

https://www.crawlab.cn
lenqu
2020-07-01 18:30:22 +08:00
@zzxy001 给个现成的用用,portainer,你自己查查
#### follow NDPS

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/686288

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX