Bonjour,
J'ai un problème pour récupérer les liens d'un fichier html.
Alors tout d'abord je récupère le code de la page sur internet à partir de son URL. Ensuite je l'enregistre dans un fichier. Jusque là tout va bien. Ensuite je veux récupérer les liens de cette page et c'est là que ca bloque pour certaines pages seulement (pour certaine ca marche, pour d'autres non !!!!).
Voici un peu de code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 public class MonParser extends ParserCallback { public void handleStartTag(Tag tag, MutableAttributeSet attrSet, int pos) { System.out.println(tag.toString() + attrSet.toString()); } }Voila pour le code.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 private MonParser parser = new MonParser(); System.out.println("DEBUT"); /*....... différents traitements pour recuperer le fichier par son url */ // le fichier File fichier = new File(chemin); /*....... différents traitements pour recuperer le fichier par son url */ Reader reader = new FileReader(fichier); new ParserDelegator().parse(reader,parser,false); System.out.println("FIN");
Tout ce passe bien jusqu'a l'appel de ParserDelegator().parse(....);
Seulement pour certaine page tout va bien ce passé (FIN est affiché normalement). Et pour d'autre page FIN ne s'affiche pas et voila ce qu'il est affiché :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 html head title html_implied_=true head_implied_=true body_implied_=true
Donc apparement c'est parce que le document ne serait pas comforme a la dtd je crois...
J'ai donc regarder à quel endroit dans les pages cela pouvait il bloquer. Et il semblerait que par exemple :
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
fait bloquer et il y en a peut être d'autre. (celle ci, c'est sur j'ai testé une page qui ne l'avait pas puis je l'ai rajouté après)
Voilà j'espère que j'ai été clair en vous exposant mon problème.
Donc j'aimerais savoir s'il y a un moyen de faire en sorte que ca marche ?????
Merci, flo
Partager