反应堆菜鸟在这里。
这更像是一个 HowTo 问题。
假设我有一个要抓取的网站,其中包含一组分页的搜索结果。搜索结果页数未知。每个搜索页面都有一个指向下一页的链接。我想从所有页面中抓取所有搜索结果并处理每个搜索结果。
我如何使用 Reactor (Mono/Flux) 在 Java 中实现这一点?
我想尽可能“积极”地做到这一点。
基本上,以下命令式伪代码的 Reactor (3.x) 版本:
String url = "http://example.com/search/1";
Optional<Document> docOp = getNextPage(url); (1)
while (docOp.isPresent()) {
Document doc = docOp.get();
processDoc(doc); (2)
docOp = getNextPage(getNextUrl(doc)); (3)
}
// (1) Get the first page of search results
// (2) Process all the search results on this page asynchronously
// (3) Find the next page URL, and get that page