1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103
|
public void postURL (String a_Url, Alerte a)
{
logger.info("Récupération de la liste des liens. URL:" + a_Url.toString());
// Récuperation du saut de ligne
@SuppressWarnings("unused")
String o_sLineSep = null;
try
{
o_sLineSep = System.getProperty("line.separator");
}
catch (Exception e)
{
o_sLineSep = "\n";
}
BufferedReader reader = null;
try {
URL url = new URL(a_Url);
URLConnection connection = url.openConnection();
logger.debug("Connection à l'URL de la page");
reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
logger.debug("Lecture de la réponse.");
boolean take = false;
page_suivante = "FIN";
logger.debug("Début d'extraction des liens de la page.");
String line;
while ((line = reader.readLine()) != null) {
// Dés que l'on rencontre cette balise dans la réponse, on indique que l'on extraira les lignes suivantes
if (line.contains("<div class=\"list-link\">")) {
take = true;
logger.debug("Balise list-link trouvée.");
}
// Dés que l'on rencontre cette balise dans la réponse, on indique que l'on n'extraira plus les lignes suivantes
if (line.contains("<div class=\"list-img\">")) {
take = false;
logger.debug("Balise list-img trouvée.");
}
// Dés que l'on rencontre cette balise dans la réponse (url de la page suivante), initialise la variable
if (line.trim().contains(">Page suivante</a>")) {
logger.debug("Balise page suivante trouvée.");
page_suivante = HTMLEntities.unhtmlentities(line.trim()).split("\"")[1];
}
// Suivant la variable take vue plus haut on créé ou non un objet Lien que l'on ajoute dans la liste des liens
if (take) {
if (line.trim().contains("<a href=")) {
Link leLien = new Link(HTMLEntities.unhtmlentities(line.trim()).split("\"")[1].split("/")[4].split(".htm")[0],HTMLEntities.unhtmlentities(line.trim()).split("\"")[3], HTMLEntities.unhtmlentities(line.trim()).split("\"")[1]);
listLiens.add(leLien);
logger.debug("Extraction du lien: " + HTMLEntities.unhtmlentities(line.trim()));
}
}
}
logger.debug("Fin d'extraction des liens de la page.");
} catch (IOException e) {
logger.error("Erreur dans la lecture de la réponse HTTP.");
a.setStatut("Erreur dans la lecture de la réponse HTTP.");
page_suivante = "FIN";
((MainWindows)parent).updateFillTable();
} catch (Exception e) {
logger.error("Erreur inconnue dans la lecture de la réponse HTTP: " + e.getMessage());
a.setStatut("Erreur inconnue dans la lecture de la réponse HTTP: " + e.getMessage());
page_suivante = "FIN";
((MainWindows)parent).updateFillTable();
}
finally {
if (reader != null) {
try {
reader.close();
} catch (IOException e) {
logger.error("Erreur dans la fermeture de la réponse HTTP.");
a.setStatut("Erreur dans la fermeture de la réponse HTTP.");
page_suivante = "FIN";
((MainWindows)parent).updateFillTable();
}
}
}
} |
Partager