Ich versuche, ein Segment einer Website zu holen. Das Skript funktioniert, aber es ist eine Website, die Akzente wie á, é, í, ó, ú hat.urllib: get utf-8 codierte Website Quellcode
Wenn ich die Site mit urllib oder urllib2 abrufe, ist der Site-Quellcode nicht in utf-8 codiert, was ich gerne hätte, da utf-8 diese Akzente unterstützt.
Ich glaube, dass die Zielstelle in utf-8 codiert wird, wie es den folgenden Meta-Tag enthält:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
Mein Python-Skript:
opener = urllib2.build_opener()
opener.addheaders = [('Accept-Charset', 'utf-8')]
url_response = opener.open(url)
deal_html = url_response.read().decode('utf-8')
aber ich halte das Erzielen von Ergebnissen, die aussehen wie sie nicht un utf-8 codiert sind.
Z. B: "Milán" auf der Website = "Mil \ xe1n" nach urllib2 es holt
Irgendwelche Vorschläge?
Ok, ich sehe jetzt, dass, wenn ich "Mil \ xc3 \ xa1n" drucke, Milán zurückgibt, was perfekt ist. Wenn ich jedoch Strings aus dem Quellcode abrufe und sie an eine Liste angehängt habe, bekomme ich "Mil \ xc3 \ xa1n". Wie kann ich dies lesbar (d. H. Milán) in der Liste oder im Wörterbuch machen? –
Die Liste ruft 'repr()' auf jedem der Elemente auf, weshalb die erweiterten Zeichen maskiert werden. Wenn Sie eine besser lesbare Darstellung für Debugging-Zwecke benötigen, tun Sie einfach etwas wie '[str (x) für x in meiner Liste]'. – kindall