【问题标题】:Jsoup parsing - parsing multiple links simultaneouslyJsoup解析——同时解析多个链接
【发布时间】:2016-05-19 21:38:02
【问题描述】:

我有一个程序,它能够从站点列表中一个一个地获取 html 文档,然后对其进行解析。

ArrayList<String> links = new ArrayList<>();

for(String link : links) {
    try {
        Document doc = Jsoup.connect(link).get();
        getInfo(doc);
    }catch (IOException e) {
        e.printStackTrace();
    }
}

问题是,获取 html 文档需要很长时间,例如 site1、site2 和 site3 ..

我的问题是,是否有可能让这段代码同时连接到 5 个链接,然后解析它们而不是一个一个地解析它们。

【问题讨论】:

  • 可以通过创建 5 个线程并同时运行它们。在 google(或 stackoverflow)中搜索 Java 中的并发性。

标签: java jsoup


【解决方案1】:

是的。

Java8 中最简单的一种可能是使用并行流

ArrayList<String> links = new ArrayList<>();

links.parallelStream().forEach(link -> {
  try {
    Document doc = Jsoup.connect(link).get();
    getInfo(doc);
  }catch (IOException e) {
    e.printStackTrace();
  }
});

当然还有很多替代方式,包括线程、执行器池等——只需使用 google 搜索并发、线程等即可。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-11
    • 2014-09-22
    相关资源
    最近更新 更多