Jsoup解析 - 同时解析多个链接

时间:2016-05-19 13:16:28

标签: java jsoup

我有一个程序,可以逐个从网站列表中获取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个链接,然后逐个解析它们。

1 个答案:

答案 0 :(得分:2)

Java8最简单的可能就是使用并行流

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

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

当然有许多替代方法,包括线程,执行程序池等 - 只需使用谷歌搜索并发,线程等等。