Hallo Leonidas,
Ich dachte, ja - wenn das nicht der Fall ist so entschuldige ich mich. Der Quelltext des Scripts:
http://paste.pocoo.org/show/110130/
Der betreffende HTML Quelltext aus der Seite die ich parsen möchte ist dort in der Variable reply_html definiert.
Der Traceback:
Traceback (most recent call last):
File "script.py", line 73, in <module>
main()
File "script.py", line 70, in main
print(Reply(reply).blockquote)
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-17: ordinal not in range(128)
EDIT:
Ich habe das Problem gerade gelöst mittels:
Code: Alles auswählen
def main():
soup = BeautifulSoup.parse(reply_html)
for reply in soup.findAll("td", {"class":"reply"}):
print((Reply(reply).blockquote).encode("utf-8"))
Die Zeichen werden zwar jetzt ausgegeben aber noch falsch dargestellt:
█▀█░█▀█░█▀█░█▀█░█▀█░█▄░█░█▀▀░░
█▀▀░█▀▄░█░█░█▀▀░█▀█░█▀██░█▀░░░
▀░░░▀░▀░▀▀▀░▀░░░▀░▀░▀░░▀░▀▀▀░▀
Sie jetzt so aus:
-„ █▀█░█▀█░█▀█░█▀█░█▀█░█▄░█░█▀▀░░ █▀▀░█▀▄░█░█░█▀▀░█▀█░█▀██░█▀░░░ ▀░░░▀░▀░▀▀▀░▀░░░▀░▀░▀░░▀░▀▀▀░▀
Warum das allerdings jetzt nur so geht ist mir rätselhaft. Da der string in Reply.blockquote ja eh schon Unicode ist warum geht es nur wenn ich ihn nochmal encode? Ich benutze übrigens Python 2.5.2 und arbeite unter Ubuntu 8.10.