ich weiß, dass ich nicht der erste bin, der dieses problem hat.
ich lade mit urllib2 eine webseite runter und möchte nun feststellen, in welchem encoding sie vorliegt, damit ich sie korrekt nach utf-8 dekodieren kann.
meine bisherige vorgehensweise ist folgende:
Code: Alles auswählen
import urllib2
request = urllib2.Request(url="http://www.google.co.jp/")
request.add_header('User-agent', 'Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3')
request.add_header('Accept-Charset', 'ISO-8859-1,utf-8;q=0.7,1;q=0.7')
remotefile = urllib2.urlopen(request)
def getEncodings():
return ['ISO-8859-1','utf-8']
#return [item.replace("_","-") for item in locale.encodings.aliases.aliases.values()]
html = remotefile.read()
flag = False
for e in getEncodings():
try:
s = html.decode(e)
if s.encode(e) == html:
print "hat geklappt: " + e
flag = True
break;
except Exception, f:
print "hat nicht geklappt: " + e
if flag == False:
print ">>> INFO kein encoding gefunden"