Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Parsing d'une page HTML avec Swing

6 réponses
Avatar
Lordthias
Salut =E0 tous,
J'ai un probleme avec la commande HTMLEditorKit().read(..,..,..) de
swing.

En gros j'utilise (du moins j'essaye) la classe HTMLDocumentLinks qui
=E0 =E9t=E9 d=E9velopp=E9 par eTecks qui est en libre acc=E9s a l'adresse <a
href=3D"http://www.eteks.com/tips/HTMLDocumentLinks.java"
target=3D"_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=E9 l=E0 ne devrait pas poser de
probl=E9me car je fait tourner une application jsp (servlet, etc...).
Mais voila, erreur au resultat : Exeption
javax.swing.text.ChangedCharSetException.

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

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

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

.=2E. il part en exception !!!

Quelqu'un aurait il une id=E9e ???
Merci beaucoup d'avance.

6 réponses

Avatar
Lordthias
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 ???
Avatar
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

Avatar
Lordthias
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 wrote:

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



Avatar
TestMan
Bonjour et merci pour la reponse.

On 13 mai, 11:58, TestMan wrote:

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



Avatar
Lordthias
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 wrote:



Bonjour et merci pour la reponse.

On 13 mai, 11:58, TestMan wrote:

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





Avatar
Zazoun
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