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());
 
	}
 
}
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");
Voila pour le code.


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