java - StormCrawler 在爬行完一个域后执行操作

标签 java web-crawler stormcrawler

当爬网程序爬行完一个域时,我想执行一项操作(在我的例子中,将一个元组发送到一个 bolt )。

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

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

最佳答案

请参阅“我什么时候知道爬网何时完成?”在 FAQ .

I saw that StormCrawler is able to do even revisit a website after a given interval.

StormCrawler 不会安排网站本身,而是安排单独的 URL。

In which component or how could I see when one domain is finished crawling in the scenario of crawling multiple domains simultaneously?

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

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

关于java - StormCrawler 在爬行完一个域后执行操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49877898/

相关文章:

elasticsearch - 有没有办法将 `metadata.depth`值也添加到doc索引的字段中?

java - 如何旋转JXImagePanel?

java - 如何使用 lucene 进行词形还原和消除空法语单词

java - 形式和实际参数

java - 为什么以及何时将 @JvmStatic 与伴随对象一起使用?

java - 是否可以使用Java爬虫crawler4j暂停和恢复爬行?

python - 如何使用 Beautiful Soup 从网站检索信息?

html - 如何允许用户复制我的电子邮件地址而不是爬虫?

elasticsearch - Stormcrawler-es.status.filterQuery如何工作?

elasticsearch - Stormcrawler不会为Elasticsearch提取/索引页面