public void run() { if (infosMotCles == null && infosSociete == null && maBD == null) return; String pageCourante = url.substring(infosSociete.get("url").toString().length(), url.length()); try { // Si on a pas vu la page -> On fouille la page if (maBD.estDejaVu(infosSociete.get("url").toString(), pageCourante).equalsIgnoreCase("0")) { logger.log(Level.INFO, "Parsing - {0}", url); Document doc = Jsoup.connect(url).get(); // Si c'est une page 404 on skip if (doc.title().indexOf("404") != -1) return; parser(doc, pageCourante); if (infosSociete.get("url").toString().equalsIgnoreCase(url)) { // On regarde si il y a des page en plus for (String link : getLinks(doc)) { pageCourante = link.substring(infosSociete.get("url").toString().length(), link.length()); if (maBD.estDejaVu(infosSociete.get("url").toString(), pageCourante) .equalsIgnoreCase("0")) { // On lance un nouveau thread pour cette page // System.out.println("!"+pageCourante+" a plusieurs pages"); new Thread(new Parser(infosSociete, infosMotCles, maBD, link, logger)).start(); try { Thread.sleep(3500); // On wait 3.5 sec } catch (Exception e) { } } } } } } catch (Exception ex) { logger.log(Level.WARNING, "Parsing error - {0}", url + " - " + ex.toString()); } finally { return; } }