Parsing d'une page HTML avec Swing

Le
Lordthias
Salut à tous,
J'ai un probleme avec la commande HTMLEditorKit().read(..,..,..) de
swing.

En gros j'utilise (du moins j'essaye) la classe HTMLDocumentLinks qui
à été développé par eTecks qui est en libre accés a l'adresse <a
href="http://www.eteks.com/tips/HTMLDocumentLinks.java"
target="_blank">http://www.eteks.com/tips/HTMLDocumentLinks.java</a>.
J'ai tout simplement fait un copier/coller de la classe. Je l'execute
avec Eclipse 2.3, JDK, JRE qui de ce coté là ne devrait pas poser de
probléme car je fait tourner une application jsp (servlet, etc).
Mais voila, erreur au resultat : Exeption
javax.swing.text.ChangedCharSetException.

Du coté du code :
// Ouverture du fichier contenu dans l'argument 0
URL fileURL = new URL (args [0]);
Reader urlReader = new BufferedReader (
new InputStreamReader (fileURL.openStream
()));

// Creation d'une instance de parser
HTMLDocumentLinks doc = new HTMLDocumentLinks (fileURL);

Jusque là tout va bien. Mais là :
// Parsing du fichier HTML avec Swing
new HTMLEditorKit ().read (urlReader, doc, 0);
urlReader.close ();

il part en exception !!!

Quelqu'un aurait il une idée ???
Merci beaucoup d'avance.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Lordthias
Le #228126
Encore moi...
Désolé,je metsla version d'eclipse mais pas celle de java 8-C :
JRE : jre1.5.0_11
JDK : jdk1.6.0_01

Donc voila, je pense pas que cela vienne du fait que je n'ai pas Swing
car il me semble qu'il est déjà installé dans cette version du JDK...
Je me trompe ???
TestMan
Le #228123
Salut à tous,
J'ai un probleme avec la commande HTMLEditorKit().read(..,..,..) de
swing.

En gros j'utilise (du moins j'essaye) la classe HTMLDocumentLinks qui
à été développé par eTecks qui est en libre accés a l'adresse <a
href="http://www.eteks.com/tips/HTMLDocumentLinks.java"
target="_blank">http://www.eteks.com/tips/HTMLDocumentLinks.java</a>.
J'ai tout simplement fait un copier/coller de la classe. Je l'execute
avec Eclipse 2.3, JDK, JRE qui de ce coté là ne devrait pas poser de
probléme car je fait tourner une application jsp (servlet, etc...).
Mais voila, erreur au resultat : Exeption
javax.swing.text.ChangedCharSetException.

Du coté du code :
// Ouverture du fichier contenu dans l'argument 0
URL fileURL = new URL (args [0]);
Reader urlReader = new BufferedReader (
new InputStreamReader (fileURL.openStream
()));

// Creation d'une instance de parser
HTMLDocumentLinks doc = new HTMLDocumentLinks (fileURL);

Jusque là tout va bien. Mais là... :
// Parsing du fichier HTML avec Swing
new HTMLEditorKit ().read (urlReader, doc, 0);
urlReader.close ();

... il part en exception !!!

Quelqu'un aurait il une idée ???
Merci beaucoup d'avance.

Bonjour,


D'aprés votre exception (et sans être devin), vous devez peut-être avoir
un soucis du coté de l'encodage du document pointé par l'URL.

Commencez par vérifier que votre page est bien valide, ensuite, vérifiez
dans le code pourquoi Java vous lance cette exception, et corrigee le tir.

Si vous n'avez pas trouvé, merci de nous mettre une trace d'exception
plus complète afin que l'on puisse creuser le point. Précisez aussi la
version de la VM lancée (1.5 ou 1.6 ? ce n'est pas clair dans votre 2e
message)

A+
TM

Lordthias
Le #228079
Bonjour et merci pour la reponse.

En faite, je fait plus ou moins un robots d'indexation (on appelera ça
comme ça).
Donc impossible de savoir d'avance si les pages sont valides.

J'ai trouvé trés peu d'info sur HTMLEditorKit() et il m'est donc assez
difficile de "corriger le tir".
La seule chose que je sais,c'est que ça craque sur la ligne :

new HTMLEditorKit ().read (urlReader, doc, 0);


et l'exception qu'il me sort et belle et bien... :

javax.swing.text.ChangedCharSetException


... uniquement.

La machine virtuel est la 1.6.

Je vais essayer de tout reprendre du début (ie. ciao la classe de
eTecks).

Merci quand meme.


On 13 mai, 11:58, TestMan

Salut à tous,
J'ai un probleme avec la commande HTMLEditorKit().read(..,..,..) de
swing.

En gros j'utilise (du moins j'essaye) la classe HTMLDocumentLinks qui
à été développé par eTecks qui est en libre accés a l'adres se <a
href="http://www.eteks.com/tips/HTMLDocumentLinks.java"
target="_blank">http://www.eteks.com/tips/HTMLDocumentLinks.java</a>.
J'ai tout simplement fait un copier/coller de la classe. Je l'execute
avec Eclipse 2.3, JDK, JRE qui de ce coté là ne devrait pas poser de
probléme car je fait tourner une application jsp (servlet, etc...).
Mais voila, erreur au resultat : Exeption
javax.swing.text.ChangedCharSetException.

Du coté du code :
// Ouverture du fichier contenu dans l'argument 0
URL fileURL = new URL (args [0]);
Reader urlReader = new BufferedReader (
new InputStreamReader (fileURL.openStream
()));

// Creation d'une instance de parser
HTMLDocumentLinks doc = new HTMLDocumentLinks (fileURL);

Jusque là tout va bien. Mais là... :
// Parsing du fichier HTML avec Swing
new HTMLEditorKit ().read (urlReader, doc, 0);
urlReader.close ();

... il part en exception !!!

Quelqu'un aurait il une idée ???
Merci beaucoup d'avance.


Bonjour,

D'aprés votre exception (et sans être devin), vous devez peut-être avoir
un soucis du coté de l'encodage du document pointé par l'URL.

Commencez par vérifier que votre page est bien valide, ensuite, vérif iez
dans le code pourquoi Java vous lance cette exception, et corrigee le tir.

Si vous n'avez pas trouvé, merci de nous mettre une trace d'exception
plus complète afin que l'on puisse creuser le point. Précisez aussi la
version de la VM lancée (1.5 ou 1.6 ? ce n'est pas clair dans votre 2e
message)

A+
TM



TestMan
Le #228078
Bonjour et merci pour la reponse.

On 13 mai, 11:58, TestMan

Salut à tous,
J'ai un probleme avec la commande HTMLEditorKit().read(..,..,..) de
swing.
En gros j'utilise (du moins j'essaye) la classe HTMLDocumentLinks qui
à été développé par eTecks qui est en libre accés a l'adresse <a
href="http://www.eteks.com/tips/HTMLDocumentLinks.java"
target="_blank">http://www.eteks.com/tips/HTMLDocumentLinks.java</a>.
J'ai tout simplement fait un copier/coller de la classe. Je l'execute
avec Eclipse 2.3, JDK, JRE qui de ce coté là ne devrait pas poser de
probléme car je fait tourner une application jsp (servlet, etc...).
Mais voila, erreur au resultat : Exeption
javax.swing.text.ChangedCharSetException.
Du coté du code :
// Ouverture du fichier contenu dans l'argument 0
URL fileURL = new URL (args [0]);
Reader urlReader = new BufferedReader (
new InputStreamReader (fileURL.openStream
()));
// Creation d'une instance de parser
HTMLDocumentLinks doc = new HTMLDocumentLinks (fileURL);
Jusque là tout va bien. Mais là... :
// Parsing du fichier HTML avec Swing
new HTMLEditorKit ().read (urlReader, doc, 0);
urlReader.close ();
... il part en exception !!!
Quelqu'un aurait il une idée ???
Merci beaucoup d'avance.
Bonjour,


D'aprés votre exception (et sans être devin), vous devez peut-être avoir
un soucis du coté de l'encodage du document pointé par l'URL.

Commencez par vérifier que votre page est bien valide, ensuite, vérifiez
dans le code pourquoi Java vous lance cette exception, et corrigee le tir.

Si vous n'avez pas trouvé, merci de nous mettre une trace d'exception
plus complète afin que l'on puisse creuser le point. Précisez aussi la
version de la VM lancée (1.5 ou 1.6 ? ce n'est pas clair dans votre 2e
message)

A+
TM


En faite, je fait plus ou moins un robots d'indexation (on appelera ça
comme ça).
Donc impossible de savoir d'avance si les pages sont valides.

J'ai trouvé trés peu d'info sur HTMLEditorKit() et il m'est donc assez
difficile de "corriger le tir".
La seule chose que je sais,c'est que ça craque sur la ligne :

new HTMLEditorKit ().read (urlReader, doc, 0);


et l'exception qu'il me sort et belle et bien... :

javax.swing.text.ChangedCharSetException


... uniquement.

La machine virtuel est la 1.6.

Je vais essayer de tout reprendre du début (ie. ciao la classe de
eTecks).

Merci quand meme.




Bonjour,

Si vous cherchez à indexer, il y a fort à parier que vous avez plutôt
vesoin de parser votre "HTML de la vraie vie" (lire, truc pourave limite
valide en SGML), alors il vous plutôt un parseur de HTML. Si c'est le
vas, il faut plutôt aller vers :

http://java-source.net/open-source/html-parsers

J'ai un petit faible pour le vétéran qu'est JTidy, mais je laisserais à
d'autre le soin de vous conseil le meilleur ...

A+
TM



Lordthias
Le #228075
Ca c'est du lien ;-) Merci beaucoup.

En faite c'est pas vraiment un robot d'indexation (d'où le :"on
appelera ça comme ça").
Plus précisement, je cherche à parser le code HTML afin d'en récuperer
les données qui m'interesse et constituer une base de données XML
traitable par la suite. Donc pas vraiment de l'indexation mais l'idée
y est.
Ca aurait pu ètre fait en PHP et "quelques" expressions régulières.
Mais c'était une bonne occasion pour moi de me lancer dans les JSP et
MVC.

En tout cas merci pour le lien, je vais fouiller un peu. Il y aura
surement de quoi faire mon bonheur.

A+

On 14 mai, 22:02, TestMan



Bonjour et merci pour la reponse.

On 13 mai, 11:58, TestMan
Salut à tous,
J'ai un probleme avec la commande HTMLEditorKit().read(..,..,..) de
swing.
En gros j'utilise (du moins j'essaye) la classe HTMLDocumentLinks qui
à été développé par eTecks qui est en libre accés a l'adr esse <a
href="http://www.eteks.com/tips/HTMLDocumentLinks.java"
target="_blank">http://www.eteks.com/tips/HTMLDocumentLinks.java</a >.
J'ai tout simplement fait un copier/coller de la classe. Je l'execute
avec Eclipse 2.3, JDK, JRE qui de ce coté là ne devrait pas poser de
probléme car je fait tourner une application jsp (servlet, etc...).
Mais voila, erreur au resultat : Exeption
javax.swing.text.ChangedCharSetException.
Du coté du code :
// Ouverture du fichier contenu dans l'argument 0
URL fileURL = new URL (args [0]);
Reader urlReader = new BufferedReader (
new InputStreamReader (fileURL.openStream
()));
// Creation d'une instance de parser
HTMLDocumentLinks doc = new HTMLDocumentLinks (fileURL);
Jusque là tout va bien. Mais là... :
// Parsing du fichier HTML avec Swing
new HTMLEditorKit ().read (urlReader, doc, 0);
urlReader.close ();
... il part en exception !!!
Quelqu'un aurait il une idée ???
Merci beaucoup d'avance.
Bonjour,


D'aprés votre exception (et sans être devin), vous devez peut-êt re avoir
un soucis du coté de l'encodage du document pointé par l'URL.

Commencez par vérifier que votre page est bien valide, ensuite, vé rifiez
dans le code pourquoi Java vous lance cette exception, et corrigee le tir.

Si vous n'avez pas trouvé, merci de nous mettre une trace d'exception
plus complète afin que l'on puisse creuser le point. Précisez auss i la
version de la VM lancée (1.5 ou 1.6 ? ce n'est pas clair dans votre 2e
message)

A+
TM


En faite, je fait plus ou moins un robots d'indexation (on appelera ça
comme ça).
Donc impossible de savoir d'avance si les pages sont valides.

J'ai trouvé trés peu d'info sur HTMLEditorKit() et il m'est donc as sez
difficile de "corriger le tir".
La seule chose que je sais,c'est que ça craque sur la ligne :

new HTMLEditorKit ().read (urlReader, doc, 0);


et l'exception qu'il me sort et belle et bien... :

javax.swing.text.ChangedCharSetException


... uniquement.

La machine virtuel est la 1.6.

Je vais essayer de tout reprendre du début (ie. ciao la classe de
eTecks).

Merci quand meme.


Bonjour,

Si vous cherchez à indexer, il y a fort à parier que vous avez plut ôt
vesoin de parser votre "HTML de la vraie vie" (lire, truc pourave limite
valide en SGML), alors il vous plutôt un parseur de HTML. Si c'est le
vas, il faut plutôt aller vers :

http://java-source.net/open-source/html-parsers

J'ai un petit faible pour le vétéran qu'est JTidy, mais je laisserais à
d'autre le soin de vous conseil le meilleur ...

A+
TM





Zazoun
Le #228074
En tout cas merci pour le lien, je vais fouiller un peu. Il y aura
surement de quoi faire mon bonheur.


Avec un problème similaire et la même liste de choix j'ai choisi HTML
Parser (http://htmlparser.sourceforge.net/), qui présente comme
avantages :
- une licence assez permissive (LGPL)
- des mises à jour assez régulières
- le support de l'XHTML

Publicité
Poster une réponse
Anonyme