Frage von Badman02, 27

das python Modul urllib(genauer urllib.request) weigert sich, Seiten mit Sonderzeichen (Ä, Ö, Ü, usw.) downzuloaden. kann mir jemand helfen?

Ich schreibe gerade einen Übersetzer, der mithilfe von urllib.request eine Internetseite mit den Argumentem text, Ausgangssprache und übersetzungssprache arbeitet. Der Aufruf der Internetseite sieht etwa so aus: self.HTML = urlopen("http://www.Übersetzer.de/dict?query={}&src={}&dst={}&submit=%C3%BCbersetzen".format(self.Text, self.Sprachen[self.von], self.Sprachen[self.nach])). Das funktioniert auch alles solange Prima, bis ich ein Sonderzeichen eingebe. ich habe schon die Sonderzeichen durch z.B. %C3%B ersetzt, was leider nicht funktionierte. Jetzt werden alle Sonderzeichen durch AE, ue, ss, usw. ersetzt. Leidert funktioniert das nur in vielleicht 3 von 10 Fällen.

Expertenantwort
von TeeTier, Community-Experte für programmieren, 6

Umlaute im Domainnamen bitte NICHT hexadezimal escapen, sondern NUR mit Punycode kodieren! Domain-Namen sind etwas völlig anderes als der Query-String!

Google hilft dir diesbzgl. weiter! :)

Quick'n'Dirty-Beispiel:

'www.' + 'übersetzer'.encode('punycode').decode() + '.de'
Antwort
von kuechentiger, 11

https://www.python-forum.de/viewtopic.php?t=37646#p288815

Antwort
von Badman02, 6

@kuechentiger Vielen Dank!

Kommentar von kuechentiger ,

Gerne!

Keine passende Antwort gefunden?

Fragen Sie die Community