0

当爬虫完成对一个域的爬取时,我想做一个动作(在我的例子中,将一个元组发送到一个螺栓)。

我看到 StormCrawler 甚至可以在给定的时间间隔后重新访问一个网站。在同时爬取多个域的场景下,在哪个组件中或者如何看到一个域何时完成爬取?

我当前的设置是使用 StormCrawler 与 Elasticsearch 和 Kibana。

4

2 回答 2

1

请参阅“我何时知道爬网何时完成?” 在常见问题解答中。

我看到 StormCrawler 甚至可以在给定的时间间隔后重新访问一个网站。

StormCrawler 不会像这样安排网站,而是安排单独的 URL。

在同时爬取多个域的场景下,在哪个组件中或者如何看到一个域何时完成爬取?

根据您正在抓取的站点数量,您可以编写一个自定义 Bolt,它会在 ES 中查询状态索引中的所有主机名,并检测那些没有更多 url 且状态为 DISCOVERED 的主机名。

或者,自定义 Bolt 将跟踪您正在抓取的网站,并在过去 N 分钟内没有获取特定网站的 url 时触发操作。

于 2018-04-17T20:12:50.677 回答
1

我实现了一个自定义 Bolt,它遵循前一种方法,但也可以针对 Julien Nioche 的回答中提到的第二种方法进行扩展或修改

于 2018-05-02T14:10:27.223 回答