[gull] Python & HTLMParser module

Daniel Cordey dc at mjt.ch
Thu Jan 31 12:46:03 CET 2008


Message destine aux Pythoniens :

En voulant automatiser un acces web, j'ai utilise le module HTMLParser de 
Python pour extraire ce que je veux de la page html. Or, ce module s'ecrase 
lamentablement en rencontrant le pattern suivant :

"....<script language=javascript>
if(window.yzq_p==null)document.write("<scr"+"ipt language=javascript 
src=http://l.yimg.com/us.js.yimg.com/lib/bc/bc_2.0.4.js></scr"+"ipt>");..."

En fait, c'est la reconnaissance d'un end-tag qui pointe sur : </scr"+"ipt> !

La raison est liee a l'utilisation de RE pour parser de l'HTML (une aberration 
a mes yeux; mais enfin...). Ceci engendre naturellement plein de problemes, 
et tout modification d'une des regles rend les choses encore plus fragiles.

Quelqu'un connait-il un module Python plus robuste que celui-ci ? J'ai 
redefini la methode parse_endtag() de la classe HTMLParser pour contourner ce 
probleme, mais je ne trouve pas cela tres elegant... Quelqu'un a-t-il deja 
rencontre ce genre de chose ? La page web incriminee est :

	http://finance.yhaoo.com

dc




More information about the gull mailing list