BeautifulSoup und Umlaute

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Liffi
User
Beiträge: 153
Registriert: Montag 1. Januar 2007, 17:23

Ich versuche mit BeautifulSoup eine Webseite zu parsen. Diese ist, laut firefox, 'ISO-8859-2' encoded.
Leider wandelt BeautifulSoup in diesem Fall die Umlaute nicht automatisch um. Statt '&uuml' wünsche ich mir eigentlich ein 'ü'.

Wenn ich das richtig sehe, funktioniert die Umwandlung bei der auskommentierten Seite.
Mir ist nicht ganz klar, wo jetzt genau der Unterschied liegt.

Code: Alles auswählen

from BeautifulSoup import BeautifulSoup
import requests

url = 'http://www.hydroinfo.hu/tables/dunhif_a.html'
#url = 'http://www.hydroinfo.hu/'
r = requests.get(url)
soup = BeautifulSoup(r.content)

table = soup.find('table')
for row in table.findAll('tr'):
    cols = row.findAll('td')
    print cols
BlackJack

@Liffi: Der Unterschied dürfte in der Darstellung der Umlaute im HTML-Quelltext liegen. Da wird für 'ä' zum Beispiel 'ä' stehen — und dabei ist die Kodierung völlig egal. HTML-„character entities” interpretiert BeautifulSoup nur wenn man das explizit angibt. Wie das geht steht da irgendwo in der Dokumentation.
Liffi
User
Beiträge: 153
Registriert: Montag 1. Januar 2007, 17:23

@BlackJack Ja, du hast vollkommen Recht. Und danke für den Hinweis zum richtigen Begriff!
Schon klappts auch.
Antworten