我正在用StormCrawler和Elasticsearch做一个概念的证明,它只在一个域上爬行,有几个主机--一个有很多页面。有没有办法告诉风暴爬虫不要将一个主机或域的所有urls分组在一个喷口中?
我按照Youtube的教程来设置它,并将喷口设置为10个并行,但据我所知,它仅使用1。如何将单个域的urls传播到单个域,甚至将单个主机的urls传播到所有的喷口上?
谢谢!吉姆
发布于 2018-08-17 08:12:30
要分区每个主机的URL,您的配置应该有partition.url.mode:"byHost“,这是默认值。这将将属于不同主机的URL放入不同的碎片中,并将使用更多的喷口实例。
来自同一主机的URL被放在相同的碎片中,以加强礼貌。如果您希望并行地从主机获取,可以简单地将fetcher.threads.per.queue设置为您想要的任何值。这是可以接受的,如果网站是你自己,但显然不礼貌,如果它属于其他人。即使您继续在每个主机上进行切分,这也会很好。
当然,您可以通过将es.status.routing设置为false来完全禁用路由。无论主机名如何,URL都将被ES切分,所有的碎片和喷口都将被使用。然而,这意味着对礼貌没有严格的控制。
https://stackoverflow.com/questions/51878907
复制相似问题