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