ruia
ruia copied to clipboard
Feat: process_start_urls in parallel
process_start_urls 目前会阻塞下方 workers,这样要求使用者一开始就有所有 url 有的时候 url 可能是从某个接口或者消息队列持续地获取到的,一开始并没有。
因此我的改法是将其并行化,作者有空烦请看看这样是否有问题。
确实有这个问题,ruia会一次获取所有的url再开始爬取
有的时候 url 可能是从某个接口或者消息队列持续地获取到的,一开始并没有。
为什么不在外层你获取到一个url就丢到ruia实现的Spide类去执行,如:
class DemoSpider:
pass
async for url in mq_urls:
DemoSpider.starts_url = [url]
await DemoSpider.start()
还是我理解错了你的意思?
按照上面的写法的话,我理解相当于:获取一个、执行一个、再获取一个
这样是不是没办法用它的并发能力了?