想用 Scrapy 做一个爬虫服务帮用户爬取数据,比如有 50 个用户,每个用户都同时创建了爬取任务,如何分配资源,确保每个用户的任务都能执行? 问了一下 ChatGPT ,但好像没有解决我的疑问。所以来请教一下,感激不尽!
1
dragonfsky1 346 天前 1
如果资源不足,让一个用户不满意好过让 50 个用户都不满意
|
2
knightdf 346 天前
你这是牢饭管饱?
|
3
wbrobot 346 天前 3
免费的不满意才会转成收费用户。。
|
4
xinmans 346 天前
用 scrapyd 调度下即可,可以用 docker 来部署,或者直接 crontab 搞 50 个并发执行
|
5
em70 346 天前
先把任务分解到最小单位,做一个爬虫池,顺序执行用户提交的任务队列里的任务,正在爬取就把任务状态改为正在处理,其他线程跳过正在处理任务,找一个未处理的执行,处理完继续下一个任务
|
6
jettzhang 346 天前
遇到同样问题,求一个答案
|
7
sumi177 346 天前
docker
|
8
Livid MOD |
9
sdsaaeee 346 天前
python 协程,不要用 Scrapy 框架。这里面主要阻塞的就是 io 问题
|
10
persistencehoo 346 天前
我会在这几方面着手:
1. Scrapy 做一个爬虫服务 - 只做采集 2. 任务推送系统(考虑 Scrapy 采集的并发量), 小批量推送数据采集,监听任务状态时未完成的 3. 处理采集数据,(改变任务状态,为已完成) |
11
PiersSoCool 346 天前
queue 就能解决吧,找个 rabbitmq 直接投递消费就好了
|
12
PiersSoCool 346 天前
不行就参考操作系统关于进程资源调度的算法,找一个就行,一般也够了
|