我的思路是这样的,master跑redis,mysql,spider1。slave就只跑spider2。这样子能做到分布式处理。 spider1负责维护在redis上增量更新的待爬取队列。spider2则分布式的处理队列,爬取并处理每一个网页,处理完毕后上传数据到mysql。 master服务器性能羸弱,这样做其实是无奈之举,若学校能提供更强大的服务器就好了。
代码及需求
需求1:分布式处理spider1的item
scrapy-redis 默认是读取url 队列,而我要处理的是json队列。几番Google未果,故直接看源码。发现作者早就想到了这个问题。RedisMixin这个类里面就可以看到。
2018/5/17大约 2 分钟约 521 字