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.
2 Antworten
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'