Warum ist mein Code so chaotisch gezeigt, während es nicht ist? [geschlossen]
-
04-10-2019 - |
Frage
class sss(webapp.RequestHandler):
def get(self):
url = "http://www.google.com/"
result = urlfetch.fetch(url)
if result.status_code == 200:
self.response.out.write(result.content)
Wenn ich Code dies zu ändern:
if result.status_code == 200:
self.response.out.write(result.content.decode('utf-8').encode('gb2312'))
Es zeigt etwas seltsam. Was soll ich tun?
Wenn ich diese:
self.response.out.write(result.content.decode('big5'))
Die Seite ist anders mit der, die ich sah, Google.com.
Wie kommt man Google.com, die ich sehe?
Lösung
Google wahrscheinlich verbüßt ??Sie ISO-8859-1. Zumindest ist es das, was sie mir dienen für den User-Agent „App Engine-Google, (+ http: // Code .google.com / appengine )“(was urlfetch Zwecke). Der Content-Type-Header-Wert ist:
text/html; charset=ISO-8859-1
So würden Sie verwenden:
result.content.decode('ISO-8859-1')
Wenn Sie result.headers["Content-Type"]
überprüfen, können Sie Ihren Code auf Änderungen am anderen Ende anzupassen. Sie können in der Regel die charset (ISO-8859-1 in diesem Fall) direkt an den Python decode-Methode übergeben.
Andere Tipps
Wie kommt man google.com, dass ich gesehen habe?
Es ist wahrscheinlich mit relativer URLs zu Bildern, JavaScript, CSS, etc, dass Sie nicht in absolute URLs in der Google-Website zu ändern. Um dies zu bestätigen: Ihre Protokolle sollten 404 Fehler werden zeigen ( „Seite nicht gefunden“), wie der Browser, auf die Sie dienen „nur die HTML“ versucht Auffinden der relativen adressierten Ressourcen, dass Sie nicht liefern
.