Encoding Problem beim Lesen von MSG Datei(Mail)
Verfasst: Montag 31. August 2009, 08:43
Hallo zusammen, nach ein paar Jahren der Python Abstinenz habe ich nun
vor kurzem wieder damit angefangen und habe mir folgendes kleines Script gebastelt:
Ich bekommen Newsletter Mails und habe diese im Outlook liegen (ja leider ist es Outlook :-/). Diese ziehe ich mir dann auf den Rechner und habe sie dann als MSG Datei hier liegen. Nun würde ich mir gerne einen bestimmten Textblock aus dem HTML Code, der ja in der Datei zwischen viel Krimskrams vorhanden ist, rausziehen. Um dies zu machen nutze ich BeautifulSoup. Da BS nur HTML Code lesen kann, der halbwegs brauchbar ist, ziehe ich mir diesen erst aus der MSG Datei und schreibe ihn in eine HTML Datei
Ziemlich umständlich aber es funzt...
Naja zum eigentlichen Problem:
Wenn ich mir den HTML Code rausziehen möchte, bekomme ich leider kaputte Umlaute und mir gehen langsam die Ideen aus:
Ich habe schon diverse Kombinationen aus .decode() und .encode() versucht, leider ohne Erfolg... Folgendes funzt auch nicht:
Etwa er schreibt mir ebenfalls kaputte Umlaute in die HTML Datei oder es kommen Fehlermeldungen die dieser hier ähneln:
Hat jemand möglicherweise eine andere Idee oder einen gänzlich neuen Ansatz der mein Problem umgehen könnte?
Grüße
vor kurzem wieder damit angefangen und habe mir folgendes kleines Script gebastelt:
Ich bekommen Newsletter Mails und habe diese im Outlook liegen (ja leider ist es Outlook :-/). Diese ziehe ich mir dann auf den Rechner und habe sie dann als MSG Datei hier liegen. Nun würde ich mir gerne einen bestimmten Textblock aus dem HTML Code, der ja in der Datei zwischen viel Krimskrams vorhanden ist, rausziehen. Um dies zu machen nutze ich BeautifulSoup. Da BS nur HTML Code lesen kann, der halbwegs brauchbar ist, ziehe ich mir diesen erst aus der MSG Datei und schreibe ihn in eine HTML Datei

Naja zum eigentlichen Problem:
Wenn ich mir den HTML Code rausziehen möchte, bekomme ich leider kaputte Umlaute und mir gehen langsam die Ideen aus:
Code: Alles auswählen
import email
fp = open(file, "r")
p = email.Parser.Parser()
msg = str(p.parse(fp))
fp.close()
Code: Alles auswählen
import codecs, email
fp = codecs.open(file, "r", "iso-8859-15") #oder "utf-8"
p = email.Parser.Parser()
msg = str(p.parse(fp))
fp.close()
Code: Alles auswählen
UnicodeEncodeError: 'charmap' codec can't encode character u'\x8d' in position 19875: character maps to <undefined>
Grüße