OVH Cloud OVH Cloud

Problème de parsing avec HTMLParser

3 réponses
Avatar
Kybla
Bonsoir à tous,

Je suis nouveau dans l'univers python donc je vous prie de m'excuser si
ma question vous parrait stupide.

J'essaye de faire un petit outil dans lequel j'ai besoin de parser une
page HTML. Après une rapide recherche sur google, je décide d'utiliser
le module standart python: HTMLParser.

Pour le tester j'applique l'exemple présent dans cet page:
http://docs.python.org/lib/htmlparser-example.html

Je parse une page de 60 Ko je vois bien les tags qui s'ouvrent et qui se
ferment mais j'ai l'impression que seul une partie de la page est
traitée. Je ne vois pas toutes les forms s'ouvrire et je ne vois pas les
balises HTML, HEAD, etc se fermer ...

Est ce que l'un d'entre vous a déjà rencontré ce genre de problème ?
Ai-je louper quelque chose ?

Merci de m'aider.

3 réponses

Avatar
Béryl
Bonsoir à tous,

Je suis nouveau dans l'univers python donc je vous prie de m'excuser si
ma question vous parrait stupide.

J'essaye de faire un petit outil dans lequel j'ai besoin de parser une
page HTML. Après une rapide recherche sur google, je décide d'utiliser
le module standart python: HTMLParser.

Pour le tester j'applique l'exemple présent dans cet page:
http://docs.python.org/lib/htmlparser-example.html

Je parse une page de 60 Ko je vois bien les tags qui s'ouvrent et qui se
ferment mais j'ai l'impression que seul une partie de la page est
traitée. Je ne vois pas toutes les forms s'ouvrire et je ne vois pas les
balises HTML, HEAD, etc se fermer ...

Est ce que l'un d'entre vous a déjà rencontré ce genre de problème ?
Ai-je louper quelque chose ?

Merci de m'aider.


Je ne connais pas HTMLParser.
Tu peux regarder du côté de d'urllib et Beautyful Soup
(http://www.crummy.com/software/BeautifulSoup/) pour parser du HTML

Béryl

Avatar
jean-michel bain-cornu
Bonjour,
J'essaye de faire un petit outil dans lequel j'ai besoin de parser une
page HTML. Après une rapide recherche sur google, je décide d'utiliser
le module standart python: HTMLParser.

Merci de m'aider.
On parle de html là dedans aussi :

http://www.voidspace.org.uk/python/articles/urllib2_francais.shtml
http://www.boddie.org.uk/python/HTML.html

A+
jm

Avatar
Gilles Lenfant
Bonsoir à tous,



Il y a 2 parsers HTML dans la distro standard de Python.

1/ HTMLParser.HTMLParser
http://docs.python.org/lib/module-HTMLParser.html

Celui-ci est un peu plus facile à utiliser mais ne fonctionne
correctement (selon mes expérimentations) que sur un XHTML strict et se
paume sur un HTML dégueu (style balises non fermées ou attributs n'étant
pas entre guillemets)

2/ htmllib.HTMLParser
http://docs.python.org/lib/module-htmllib.html

Celui-ci est plus tolérant avec le HTML dégueu, puisque basé sur le
parser SGML, mais offre moins de possibilités.

Attention, les API sont différentes.

J'ai expérimenté une autre méthode mais celle-ci ne fonctionnera que
sous Windows: utiliser IE6 comme objet COM et utiliser l'interface DOM
du contenu des pages. L'avantage étant qu'on a toujours un arbre DOM
"valable", y compris avec des pages HTML dégueu.

Bon courage...

Je suis nouveau dans l'univers python donc je vous prie de m'excuser
si ma question vous parrait stupide.

J'essaye de faire un petit outil dans lequel j'ai besoin de parser une
page HTML. Après une rapide recherche sur google, je décide d'utiliser
le module standart python: HTMLParser.

Pour le tester j'applique l'exemple présent dans cet page:
http://docs.python.org/lib/htmlparser-example.html

Je parse une page de 60 Ko je vois bien les tags qui s'ouvrent et qui
se ferment mais j'ai l'impression que seul une partie de la page est
traitée. Je ne vois pas toutes les forms s'ouvrire et je ne vois pas
les balises HTML, HEAD, etc se fermer ...

Est ce que l'un d'entre vous a déjà rencontré ce genre de problème ?
Ai-je louper quelque chose ?

Merci de m'aider.


Je ne connais pas HTMLParser.
Tu peux regarder du côté de d'urllib et Beautyful Soup
(http://www.crummy.com/software/BeautifulSoup/) pour parser du HTML

Béryl