2017-05-29 3 views
-2
import requests 
test = requests.get("https://www.hipstercode.com/") 
outfile = open("./settings.txt", "w") 
test.encoding = 'ISO-8859-1' 
outfile.write(str(test.text)) 

Der Fehler, ich erhalte ist:kann nicht das Verzeichnis keine Ahnung, warum

File "C:/Users/Bamba/PycharmProjects/Requests/Requests/Requests.py", line 8, in <module> 
    outfile.write(str(test.text)) 
File "C:\Users\Bamba\AppData\Local\Programs\Python\Python35\lib\encodings\cp1255.py", line 19, in encode 
    return codecs.charmap_encode(input,self.errors,encoding_table)[0] 
UnicodeEncodeError: 'charmap' codec can't encode character '\xef' in position 0: character maps to <undefined> 
+0

try Hinzufügen von 'encoding =" utf-8 "' zu öffnen – e4c5

Antwort

0

So, sieht aus wie Antwort smth enthält, die Sie nicht in CP1251 kodieren kann.

Wenn utf-8 ok für Sie ist, versuchen

import requests 
test = requests.get("https://www.hipstercode.com/") 
outfile = open("./settings.txt", "wb") 
outfile.write(test.text.encode('ISO-8859-1')) 

Wenn Sie Fehler sind immer während Codierung, können Sie einfach nicht lossless kodieren. Optionen, die Sie haben in encode docs beschrieben: https://docs.python.org/3/library/stdtypes.html#str.encode

Ie, können Sie

outfile.write(test.text.encode('ISO-8859-1', 'replace')) 

Fehler zu behandeln, ohne die meisten Sinn des Textes in smth geschrieben zu verlieren, die nicht passt das ISO-8859-1

+0

Der Punkt ist, ich möchte ISO-8859-1 verwenden – bamba

+0

Ich habe Antwort bearbeitet. Sie können dies nicht auf einfache Weise tun, wenn Ihre Codiertabelle die empfangenen Daten nicht verarbeiten kann. So können Sie entkommen ignorieren oder ersetzen. Was bedeutet, dass Sie in den meisten Fällen verlustreich gehen. – Slam

+0

Warten Sie also, es ist etwas mit der spezifischen Website? – bamba

Verwandte Themen