[Python] charset, coding, accents et page html

charset, coding, accents et page html [Python] - Python - Programmation

Marsh Posté le 20-05-2004 à 23:19:03    

Bonsoir,
 
Je débute sous Python (depuis cet après midi) et je me suis fait un petit script qui va récupérer quelques valeurs d'une page HTML.
Je me sers pour cela du module "re", avec par exemple des re.findall(blabla, pouet)
 
Tout ceci fonctionne tant bien que mal sauf... quand un accent apparait. Deja un simple print me donne :

Code :
  1. ---------Infos Générales----------


 
De plus quand je cherche à récupérer mes valeurs avec mes re.findall, le moindre accent empeche de trouver quelque chose.
Genre:

Code :
  1. Héraults :  []   exp des héraults :  []
  2. Soldats:  ['237']  (OFF) |  ['210']  (DEF)
  3. Mercenaires:  []  (OFF) |  []  (DEF)


 
La ligne sans accent passe, les accent dans le re.find bloquent.
 
J'ai essayé de regler le "coding" avec  

Code :
  1. #  -*- coding=latin-1 -*-


utf-8, latin-1, iso-8859-1 (ce dernier etant le codage de la page), mais pas de changement notable :/
 
Si vous avez un tuyau, je prends...

Reply

Marsh Posté le 20-05-2004 à 23:19:03   

Reply

Marsh Posté le 21-05-2004 à 12:07:57    

:sweat:

Reply

Marsh Posté le 27-05-2004 à 21:17:52    

AirbaT a écrit :

Bonsoir,
 
Tout ceci fonctionne tant bien que mal sauf... quand un accent apparait. Deja un simple print me donne :

Code :
  1. ---------Infos Générales----------


 
Si vous avez un tuyau, je prends...


 
bonjour,
 
desolé pour cette réponse tardive.
 
j'ai écrit un commentaire sur Python et l'unicode : http://lionel.grolleau.free.fr/pyt [...] ml#unicode.
 
si cela peux t'aider un peu.
 
Lionel


---------------
Python facile : http://pythonfacile.free.fr/ Les ressources (liens) en français sur Python.
Reply

Marsh Posté le 28-05-2004 à 13:48:47    

Merci pour cette réponse,
 
en fait le problème se situait au niveau de l'éditeur de texte ! J'en ai changé par hasard et tout est rentré dans l'ordre apres avoir reecrit mes accents.

Reply

Marsh Posté le 28-05-2004 à 14:10:10    

string.encode('latin-1','replace')

Reply

Marsh Posté le 28-05-2004 à 14:56:42    

C'est des accents UTF-8 ça. Il est très probable que ton site web fournisse des pages à ce format. Ce qui est conseillé dans ce cas c'est de convertir la page en string unicode en lui fournissant cette information :
 
chaineUnicode = unicode(chaineUTF8,"UTF-8" )
 
Après, tes regexp devraient pouvoir fonctionner correctement

Reply

Marsh Posté le 07-06-2004 à 09:51:57    

Et le_Glu ,euh Lionel Merci pour ton site. :D
 
 
Un gros débutant.  :)  


Message édité par lascapi le 07-06-2004 à 09:52:38

---------------
Evoluons bien, mais surtout : trouvons la vérité ...
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed