package com.infobip.jsouptest; import java.io.IOException; import java.util.*; import java.util.concurrent.*; import java.util.logging.Level; import java.util.logging.Logger; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.select.Elements; /** * Hello world! * */ public class App { public static void main( String[] args ) throws IOException { ExecutorService executorService = Executors.newFixedThreadPool(5); List> handles = new ArrayList>(); List> requests = new ArrayList>(); Document d = Jsoup.connect("http://www.betexplorer.com/results/").timeout(0).get(); Elements elements = d.select("a"); Iterator it = elements.iterator(); Element e; while(it.hasNext()) { e = it.next(); //System.out.println(e.attr("href")); if (e.attr("href").startsWith("/soccer")) { requests.add(new Request("http://www.betexplorer.com"+e.attr("href"))); } } System.out.println("soccer requests size : "+requests.size()); System.out.println(Arrays.deepToString(requests.toArray())); for (Callable request : requests) { handles.add(executorService.submit(request)); } for (Future h : handles) { try { d = h.get(); System.out.println(d.title()); } catch (Exception ex) { ex.printStackTrace(); } } executorService.shutdownNow(); } }