J'ai besoin de pouvoir extraire des informations d'une page html. Je
rechercher un framework qui m'aiderait =E0 d=E9velopper l'outil dont j'ai
besoin.
Si je connais la structure de quelques pages html, je veux pouvoir
d=E9finir un "template" ou "masque" pour extraire la ou les informations
qui m'int=E9ressent.
Par exemple, si j'ai la page suivante :
<html>
<body>
<h1>Titre de la page</h1>
Texte repr=E9sentant le contenu de la page
</body>
</html>
je devrais pouvoir d=E9finir le masque suivant :
<html>
<body>
<h1>${titre_page}</h1>
${contenu_page}
</body>
</html>
Il me faudrait ensuite une fonction qui prenne en param=E8tre la page
html et le masque et retourne une Hashtable contenant chaque champs et
sa valeur.
Qu'en pensez-vous ?
Connaissez-vous qqch d'existant qui pourrait m'aider ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
TestMan
Bonjour,
Des requètes XPath devraient fonctionner, et si ton contenu n'est pas du XML valide il te faudra utiliser à la place d'un parseur XML un des http://java-source.net/open-source/html-parsers/java-html-parser
Celà te permetra de t'adapter facilement en cas de modification de la structure de la page.
Si tu as beaucoup de pages à vampiriser dans le même style afin d'éviter à faire trop de code, tu peux appliquer une feuille XSLT qui fera un adapteur vers un flux XML plus clasique que tu pourras traiter de façon uniforme quelque soit les sources. Un classique du genre Cocoon gére ça trés bien ...
A+
TM
Salut,
J'ai besoin de pouvoir extraire des informations d'une page html. Je rechercher un framework qui m'aiderait à développer l'outil dont j'ai besoin.
Si je connais la structure de quelques pages html, je veux pouvoir définir un "template" ou "masque" pour extraire la ou les informations qui m'intéressent.
Par exemple, si j'ai la page suivante : <html> <body> <h1>Titre de la page</h1> Texte représentant le contenu de la page </body> </html>
je devrais pouvoir définir le masque suivant : <html> <body> <h1>${titre_page}</h1> ${contenu_page} </body> </html>
Il me faudrait ensuite une fonction qui prenne en paramètre la page html et le masque et retourne une Hashtable contenant chaque champs et sa valeur.
Qu'en pensez-vous ? Connaissez-vous qqch d'existant qui pourrait m'aider ?
Merci d'avance Lilian
Bonjour,
Des requètes XPath devraient fonctionner, et si ton contenu n'est pas du
XML valide il te faudra utiliser à la place d'un parseur XML un des
http://java-source.net/open-source/html-parsers/java-html-parser
Celà te permetra de t'adapter facilement en cas de modification de la
structure de la page.
Si tu as beaucoup de pages à vampiriser dans le même style afin d'éviter
à faire trop de code, tu peux appliquer une feuille XSLT qui fera un
adapteur vers un flux XML plus clasique que tu pourras traiter de façon
uniforme quelque soit les sources. Un classique du genre Cocoon gére ça
trés bien ...
A+
TM
Salut,
J'ai besoin de pouvoir extraire des informations d'une page html. Je
rechercher un framework qui m'aiderait à développer l'outil dont j'ai
besoin.
Si je connais la structure de quelques pages html, je veux pouvoir
définir un "template" ou "masque" pour extraire la ou les informations
qui m'intéressent.
Par exemple, si j'ai la page suivante :
<html>
<body>
<h1>Titre de la page</h1>
Texte représentant le contenu de la page
</body>
</html>
je devrais pouvoir définir le masque suivant :
<html>
<body>
<h1>${titre_page}</h1>
${contenu_page}
</body>
</html>
Il me faudrait ensuite une fonction qui prenne en paramètre la page
html et le masque et retourne une Hashtable contenant chaque champs et
sa valeur.
Qu'en pensez-vous ?
Connaissez-vous qqch d'existant qui pourrait m'aider ?
Des requètes XPath devraient fonctionner, et si ton contenu n'est pas du XML valide il te faudra utiliser à la place d'un parseur XML un des http://java-source.net/open-source/html-parsers/java-html-parser
Celà te permetra de t'adapter facilement en cas de modification de la structure de la page.
Si tu as beaucoup de pages à vampiriser dans le même style afin d'éviter à faire trop de code, tu peux appliquer une feuille XSLT qui fera un adapteur vers un flux XML plus clasique que tu pourras traiter de façon uniforme quelque soit les sources. Un classique du genre Cocoon gére ça trés bien ...
A+
TM
Salut,
J'ai besoin de pouvoir extraire des informations d'une page html. Je rechercher un framework qui m'aiderait à développer l'outil dont j'ai besoin.
Si je connais la structure de quelques pages html, je veux pouvoir définir un "template" ou "masque" pour extraire la ou les informations qui m'intéressent.
Par exemple, si j'ai la page suivante : <html> <body> <h1>Titre de la page</h1> Texte représentant le contenu de la page </body> </html>
je devrais pouvoir définir le masque suivant : <html> <body> <h1>${titre_page}</h1> ${contenu_page} </body> </html>
Il me faudrait ensuite une fonction qui prenne en paramètre la page html et le masque et retourne une Hashtable contenant chaque champs et sa valeur.
Qu'en pensez-vous ? Connaissez-vous qqch d'existant qui pourrait m'aider ?
Merci d'avance Lilian
LR
Merci pour ta réponse,
le contenu HTML ne sera surement pas standard et je doute donc que les requêts XPath fassent l'affaire.
En revanche, les feuilles XSLT sont peut-être la solution, même si je n'ai jamais utilisé ça. Aurais-tu ou pourrais-tu me diriger vers un exemple plus ou moins proche de ce que je veux faire ?
Merci pour ton aide Lilian
Merci pour ta réponse,
le contenu HTML ne sera surement pas standard et je doute donc que les
requêts XPath fassent l'affaire.
En revanche, les feuilles XSLT sont peut-être la solution, même si je
n'ai jamais utilisé ça. Aurais-tu ou pourrais-tu me diriger vers un
exemple plus ou moins proche de ce que je veux faire ?
le contenu HTML ne sera surement pas standard et je doute donc que les requêts XPath fassent l'affaire.
En revanche, les feuilles XSLT sont peut-être la solution, même si je n'ai jamais utilisé ça. Aurais-tu ou pourrais-tu me diriger vers un exemple plus ou moins proche de ce que je veux faire ?
Merci pour ton aide Lilian
jlp
"LR" a écrit dans le message de news: Merci pour ta réponse,
le contenu HTML ne sera surement pas standard et je doute donc que les requêts XPath fassent l'affaire.
En revanche, les feuilles XSLT sont peut-être la solution, même si je n'ai jamais utilisé ça. Aurais-tu ou pourrais-tu me diriger vers un exemple plus ou moins proche de ce que je veux faire ?
Merci pour ton aide Lilian
Pour utiliser XSLT, il faut que le fichier HTML soit en fait XHTML , c'est à dire "valide" au sens XML avec des tags d'ouvertures et des tags de fermetures ou des tags vides. par exemple : <br> <br> est non valide
<br/> <br> </br> est valide...
"LR" <lr@sib.org> a écrit dans le message de
news:1143643645.268054.168870@t31g2000cwb.googlegroups.com...
Merci pour ta réponse,
le contenu HTML ne sera surement pas standard et je doute donc que les
requêts XPath fassent l'affaire.
En revanche, les feuilles XSLT sont peut-être la solution, même si je
n'ai jamais utilisé ça. Aurais-tu ou pourrais-tu me diriger vers un
exemple plus ou moins proche de ce que je veux faire ?
Merci pour ton aide
Lilian
Pour utiliser XSLT, il faut que le fichier HTML soit en fait XHTML , c'est à
dire "valide" au sens XML avec des tags d'ouvertures et des tags de
fermetures ou des tags vides.
par exemple :
<br>
<br>
est non valide
"LR" a écrit dans le message de news: Merci pour ta réponse,
le contenu HTML ne sera surement pas standard et je doute donc que les requêts XPath fassent l'affaire.
En revanche, les feuilles XSLT sont peut-être la solution, même si je n'ai jamais utilisé ça. Aurais-tu ou pourrais-tu me diriger vers un exemple plus ou moins proche de ce que je veux faire ?
Merci pour ton aide Lilian
Pour utiliser XSLT, il faut que le fichier HTML soit en fait XHTML , c'est à dire "valide" au sens XML avec des tags d'ouvertures et des tags de fermetures ou des tags vides. par exemple : <br> <br> est non valide
<br/> <br> </br> est valide...
LR
Ce n'est donc surement pas la solution.
Mais alors comment faire ? Quelqu'un a une idée ?
Je vais peut-être devoir me résoudre à le faire moi mais je ne sais pas encore comment.
Ce n'est donc surement pas la solution.
Mais alors comment faire ? Quelqu'un a une idée ?
Je vais peut-être devoir me résoudre à le faire moi mais je ne sais
pas encore comment.
Passe d'abord le HTML à jtidy (jtidy.sourceforge.net) qui se fera un plaisir de le transformer en XHTML, c'est à dire en un document XML valide !
-- David Jourand
Jacques-Olivier Haenni
Bonjour,
La piste du XML me paraît bien compliquée et potentiellement bien hasardeuse...
Avez-vous regardé du côté de frameworks tels que htmlunit (http://htmlunit.sourceforge.net/; exemple de parcours d'un tableau: http://htmlunit.sourceforge.net/table-howto.html) ou httpunit (http://httpunit.sourceforge.net/) ? Ils offrent entre autres des méthodes permettant d'accéder au contenu d'une page HTML de manière très aisée.
Un des buts premiers de ces frameworks est d'offrir du support pour des tests unitaires d'application Web, mais ils peuvent très bien servir à accéder au contenu de pages web en général.
Une autre solution consiste à utiliser des expressions régulières pour extraire certaines informations de la page HTML. Dans certains cas, ça peut s'avérer un bon choix.
Jacques-Olivier
David JOURAND wrote:
Bonjour,
Mais alors comment faire ? Quelqu'un a une idée ?
Passe d'abord le HTML à jtidy (jtidy.sourceforge.net) qui se fera un plaisir de le transformer en XHTML, c'est à dire en un document XML valide !
Bonjour,
La piste du XML me paraît bien compliquée et potentiellement bien
hasardeuse...
Avez-vous regardé du côté de frameworks tels que htmlunit
(http://htmlunit.sourceforge.net/; exemple de parcours d'un tableau:
http://htmlunit.sourceforge.net/table-howto.html) ou httpunit
(http://httpunit.sourceforge.net/) ? Ils offrent entre autres des
méthodes permettant d'accéder au contenu d'une page HTML de manière très
aisée.
Un des buts premiers de ces frameworks est d'offrir du support pour des
tests unitaires d'application Web, mais ils peuvent très bien servir à
accéder au contenu de pages web en général.
Une autre solution consiste à utiliser des expressions régulières pour
extraire certaines informations de la page HTML. Dans certains cas, ça
peut s'avérer un bon choix.
Jacques-Olivier
David JOURAND wrote:
Bonjour,
Mais alors comment faire ? Quelqu'un a une idée ?
Passe d'abord le HTML à jtidy (jtidy.sourceforge.net) qui se fera un
plaisir de le transformer en XHTML, c'est à dire en un document XML
valide !
La piste du XML me paraît bien compliquée et potentiellement bien hasardeuse...
Avez-vous regardé du côté de frameworks tels que htmlunit (http://htmlunit.sourceforge.net/; exemple de parcours d'un tableau: http://htmlunit.sourceforge.net/table-howto.html) ou httpunit (http://httpunit.sourceforge.net/) ? Ils offrent entre autres des méthodes permettant d'accéder au contenu d'une page HTML de manière très aisée.
Un des buts premiers de ces frameworks est d'offrir du support pour des tests unitaires d'application Web, mais ils peuvent très bien servir à accéder au contenu de pages web en général.
Une autre solution consiste à utiliser des expressions régulières pour extraire certaines informations de la page HTML. Dans certains cas, ça peut s'avérer un bon choix.
Jacques-Olivier
David JOURAND wrote:
Bonjour,
Mais alors comment faire ? Quelqu'un a une idée ?
Passe d'abord le HTML à jtidy (jtidy.sourceforge.net) qui se fera un plaisir de le transformer en XHTML, c'est à dire en un document XML valide !
David JOURAND
Bonjour,
La piste du XML me paraît bien compliquée et potentiellement bien hasardeuse...
Je ne trouve pas que parser le XHTML avec une classe implémentant l'interface org.xml.sax.ContentHandler soit compliqué.
Un des buts premiers de ces frameworks est d'offrir du support pour des tests unitaires d'application Web, mais ils peuvent très bien servir à accéder au contenu de pages web en général.
Effectivement ! Mais je ne pense pas que cela soit beaucoup plus simple qu'un parser SAX... Cela dépend certainement du contenu de la page.
Une autre solution consiste à utiliser des expressions régulières pour extraire certaines informations de la page HTML. Dans certains cas, ça peut s'avérer un bon choix.
Délicat...
-- David Jourand
Bonjour,
La piste du XML me paraît bien compliquée et potentiellement bien
hasardeuse...
Je ne trouve pas que parser le XHTML avec une classe implémentant
l'interface org.xml.sax.ContentHandler soit compliqué.
Un des buts premiers de ces frameworks est d'offrir du support pour des
tests unitaires d'application Web, mais ils peuvent très bien servir à
accéder au contenu de pages web en général.
Effectivement ! Mais je ne pense pas que cela soit beaucoup plus simple
qu'un parser SAX... Cela dépend certainement du contenu de la page.
Une autre solution consiste à utiliser des expressions régulières pour
extraire certaines informations de la page HTML. Dans certains cas, ça
peut s'avérer un bon choix.
La piste du XML me paraît bien compliquée et potentiellement bien hasardeuse...
Je ne trouve pas que parser le XHTML avec une classe implémentant l'interface org.xml.sax.ContentHandler soit compliqué.
Un des buts premiers de ces frameworks est d'offrir du support pour des tests unitaires d'application Web, mais ils peuvent très bien servir à accéder au contenu de pages web en général.
Effectivement ! Mais je ne pense pas que cela soit beaucoup plus simple qu'un parser SAX... Cela dépend certainement du contenu de la page.
Une autre solution consiste à utiliser des expressions régulières pour extraire certaines informations de la page HTML. Dans certains cas, ça peut s'avérer un bon choix.
Délicat...
-- David Jourand
LR
Il faut que je me penche sur les frameworks de tests unitaires, ça correspond effectivement en partie à ce que je veux faire.
D'un autre coté, l'utilisation de XHTML après traitement par JTidy me paraît bonne aussi. Il faut que je vérifie que JTidy est vraiment capable de transformer de manière fiable un contenu html en xhtml, sans erreur et sans perte d'information.
Merci pour ces suggestions.
Il faut que je me penche sur les frameworks de tests unitaires, ça
correspond effectivement en partie à ce que je veux faire.
D'un autre coté, l'utilisation de XHTML après traitement par JTidy me
paraît bonne aussi. Il faut que je vérifie que JTidy est vraiment
capable de transformer de manière fiable un contenu html en xhtml,
sans erreur et sans perte d'information.
Il faut que je me penche sur les frameworks de tests unitaires, ça correspond effectivement en partie à ce que je veux faire.
D'un autre coté, l'utilisation de XHTML après traitement par JTidy me paraît bonne aussi. Il faut que je vérifie que JTidy est vraiment capable de transformer de manière fiable un contenu html en xhtml, sans erreur et sans perte d'information.
Merci pour ces suggestions.
TestMan
Bonjour,
Et alors ou est le problème ? C'est pour celà que dans le lien que je t'ai passé il y a des parser qui peuvent lire des truc gore (comme jtidy), il savent même lire du code aussi mauvais que le HTML généré par office (sombre mixture infame à ne pas ouvrir) ;-)
Et si tu veux faire du XSLT il te faudra de toute façon un parseur XML qui soir compatible avec du HTML "pourrit" donc tu retombe sur le même problème dont je t'ai déjà donné une solution dans la paragraphe précédent ;-)
A+
TM
Merci pour ta réponse,
le contenu HTML ne sera surement pas standard et je doute donc que les requêts XPath fassent l'affaire.
En revanche, les feuilles XSLT sont peut-être la solution, même si je n'ai jamais utilisé ça. Aurais-tu ou pourrais-tu me diriger vers un exemple plus ou moins proche de ce que je veux faire ?
Merci pour ton aide Lilian
Bonjour,
Et alors ou est le problème ?
C'est pour celà que dans le lien que je t'ai passé il y a des parser qui
peuvent lire des truc gore (comme jtidy), il savent même lire du code
aussi mauvais que le HTML généré par office (sombre mixture infame à ne
pas ouvrir) ;-)
Et si tu veux faire du XSLT il te faudra de toute façon un parseur XML
qui soir compatible avec du HTML "pourrit" donc tu retombe sur le même
problème dont je t'ai déjà donné une solution dans la paragraphe
précédent ;-)
A+
TM
Merci pour ta réponse,
le contenu HTML ne sera surement pas standard et je doute donc que les
requêts XPath fassent l'affaire.
En revanche, les feuilles XSLT sont peut-être la solution, même si je
n'ai jamais utilisé ça. Aurais-tu ou pourrais-tu me diriger vers un
exemple plus ou moins proche de ce que je veux faire ?
Et alors ou est le problème ? C'est pour celà que dans le lien que je t'ai passé il y a des parser qui peuvent lire des truc gore (comme jtidy), il savent même lire du code aussi mauvais que le HTML généré par office (sombre mixture infame à ne pas ouvrir) ;-)
Et si tu veux faire du XSLT il te faudra de toute façon un parseur XML qui soir compatible avec du HTML "pourrit" donc tu retombe sur le même problème dont je t'ai déjà donné une solution dans la paragraphe précédent ;-)
A+
TM
Merci pour ta réponse,
le contenu HTML ne sera surement pas standard et je doute donc que les requêts XPath fassent l'affaire.
En revanche, les feuilles XSLT sont peut-être la solution, même si je n'ai jamais utilisé ça. Aurais-tu ou pourrais-tu me diriger vers un exemple plus ou moins proche de ce que je veux faire ?