10000台不稳定机器如果做爬虫
关注公众号:Python爬虫数据分析挖掘,免费获取更多开源项目源码
仅仅是要减小nodes之间的traffic,实际很难减少呀,但是做到能减少一点是一点。
还是需要master的角色来做初始化和协调。
但是每个node把url分发到对应的node去处理,不过把这个信息给存在本地就好,就不用每次去找master来找,这个是减少一点call。
我觉得其实还有个思路。
弄几个中心节点记录每个url是否被爬过。然后一个节点拿到url,使劲爬,当然每次爬之前要去中心查是否被爬了,或者说尝试去中心检点标记自己要爬这个,但是标记失败就说明被爬过了,不用爬了。这样的话,只需要一个call。
如果当前节点的queue太大了。说明自己搞不定,那就去master要资源,看看哪个节点空闲。那这个节点可以去把部分load转移到另外的节点上去。
这样节点之间的通信只有url信息,网络流量不增不减吧。好处是,每个节点不用频繁和各种连接都建立连接。
耐得住寂寞,才能登得顶
Gitee码云:https://gitee.com/lyc96/projects