UnicodeEncodeError
So, Ich bedanke mich viele viele Male, vor allem bei dir BlackJack. Wenn ich jedes Unicode Objekt einfach mit UTF-8 encode läuft das Script komplett ohne Fehler durch, nur so ganz spezielle Zeichen machen dann ab und an gerne Probleme. Ich müsste jetzt noch eine Möglichkeit finden herauszufinden ob sich Zeichen auf der Seite befinden die zwar vom Firefox richtig dargestellt werden aber nicht im <meta> charset deklariert sind.
@derdon: Das hat nichts mit Python 3.0 zu tun, da gibt es auch den Namen `unicode` nicht mehr in den "builtins".
@cryzed: Das ist übles rumgehacke an Symptomen und keine Problemlösung. Ich denke das Problem ist die `_strip_html()`-Funktion, denn da muss BeautifulSoup wieder ohne Hinweise raten was denn wohl die Kodierung des HTML-Fragments sein mag. Warum machst Du das überhaupt so umständlich? BeautifulSoup nach `str` mit HTML nach BeautifulSoup und dann nach `unicode`, und das alles nur um die Tags zu entfernen!? Das kann man auch etwas direkter haben.
Wenn man eine Unicode-Zeichenkette mit cp1252 kodiert und dabei UTF-8 heraus bekommt, dann ist das Programm fehlerhaft.
@cryzed: Das ist übles rumgehacke an Symptomen und keine Problemlösung. Ich denke das Problem ist die `_strip_html()`-Funktion, denn da muss BeautifulSoup wieder ohne Hinweise raten was denn wohl die Kodierung des HTML-Fragments sein mag. Warum machst Du das überhaupt so umständlich? BeautifulSoup nach `str` mit HTML nach BeautifulSoup und dann nach `unicode`, und das alles nur um die Tags zu entfernen!? Das kann man auch etwas direkter haben.
Wenn man eine Unicode-Zeichenkette mit cp1252 kodiert und dabei UTF-8 heraus bekommt, dann ist das Programm fehlerhaft.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Also ich hätte ja schon *längst* lxml genommen, denn das BeautifulSoup-rumgehacke wäre mir dann irgendwann auch zu blöd geworden. Außerdem hätte ich durchweg Unicode verwendet statt da Bytestrings und Unicodestrings zusammenzumischen, was immer zu fürchterlichem Code führt.
Und außerdem Frage ich micht, warum man sachen im Pastebin als "privat" markiert und dann in ein öffentliches Forum stellt. Das ist wie Flüstern in ein Megaphon.
Und außerdem Frage ich micht, warum man sachen im Pastebin als "privat" markiert und dann in ein öffentliches Forum stellt. Das ist wie Flüstern in ein Megaphon.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Bei mir haben die Selektoren bei BeautifulSoup öfter mal rumgesponnen und musste den Autor um Rat fragen, der mir dann eine ganz komische Lösung geliefert hat. Außerdem finde ich es eh nützlicher, dass wenn man schon einen HTML5 Parser nutzt, dass dann BeautifulSoup keine speziellen Vorteile[*] ggü. anderen Libraries hat.
[*] Außer dass sie halt Python 3 kompatibel ist, das muss man zugeben.
[*] Außer dass sie halt Python 3 kompatibel ist, das muss man zugeben.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Ich kenne mich einfach am besten mit BeautifulSoup aus, und glaube auch das es das einfachste ist. Zum zweiten, ja das stimmt schon irgendwo, es ist einfach eine Angewohnheit geworden das Privat-Feld zu füllen da ich den Service sehr oft benutze und das meist für private Daten.Leonidas hat geschrieben:Also ich hätte ja schon *längst* lxml genommen, denn das BeautifulSoup-rumgehacke wäre mir dann irgendwann auch zu blöd geworden. Außerdem hätte ich durchweg Unicode verwendet statt da Bytestrings und Unicodestrings zusammenzumischen, was immer zu fürchterlichem Code führt.
Und außerdem Frage ich micht, warum man sachen im Pastebin als "privat" markiert und dann in ein öffentliches Forum stellt. Das ist wie Flüstern in ein Megaphon.