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?

War es hilfreich?

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

.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top