StormCrawler 爬完一个域后做的动作
StormCrawler do action when crawling one domain finished
当爬虫完成对一个域的爬行时,我想执行一个操作(在我的例子中将一个元组发送到一个螺栓)。
我看到 StormCrawler 甚至可以在给定的时间间隔后重新访问网站。在多域同时爬取的场景下,在哪个组件或如何查看一个域何时爬取完成?
我当前的设置是将 StormCrawler 与 Elasticsearch 和 Kibana 结合使用。
参见 FAQ 中的 "When do I know when a crawl is finished?"。
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?
根据您要抓取的网站数量,您可以编写一个自定义螺栓,它会在 ES 中查询状态索引中的所有主机名,并检测那些不再有 url 具有状态的主机名发现。
或者,一个自定义螺栓将跟踪您正在抓取的网站,并在过去 N 分钟内未获取特定网站的 url 时触发操作。
我实现了一个 custom Bolt,它遵循前一种方法,但也可以针对 Julien Nioche
的回答中提到的第二种方法进行扩展或修改
当爬虫完成对一个域的爬行时,我想执行一个操作(在我的例子中将一个元组发送到一个螺栓)。
我看到 StormCrawler 甚至可以在给定的时间间隔后重新访问网站。在多域同时爬取的场景下,在哪个组件或如何查看一个域何时爬取完成?
我当前的设置是将 StormCrawler 与 Elasticsearch 和 Kibana 结合使用。
参见 FAQ 中的 "When do I know when a crawl is finished?"。
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?
根据您要抓取的网站数量,您可以编写一个自定义螺栓,它会在 ES 中查询状态索引中的所有主机名,并检测那些不再有 url 具有状态的主机名发现。
或者,一个自定义螺栓将跟踪您正在抓取的网站,并在过去 N 分钟内未获取特定网站的 url 时触发操作。
我实现了一个 custom Bolt,它遵循前一种方法,但也可以针对 Julien Nioche
的回答中提到的第二种方法进行扩展或修改