¿Por qué es mi código muestra como desordenado, mientras que no lo es? [cerrado]
-
04-10-2019 - |
Pregunta
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)
Cuando cambio de código a la siguiente:
if result.status_code == 200:
self.response.out.write(result.content.decode('utf-8').encode('gb2312'))
Se muestra algo extraño. ¿Qué debo hacer?
Cuando uso la siguiente:
self.response.out.write(result.content.decode('big5'))
La página es diferente con la que vi Google.com.
Como llegar Google.com que vi?
Solución
Google es, probablemente, que cumple la norma ISO-8859-1. Al menos, eso es lo que me sirven para la User-Agent "AppEngine-Google; (+ http: // código .google.com / appengine )"(que UrlFetch usos). El valor de cabecera Content-Type es:
text/html; charset=ISO-8859-1
Así se debería utilizar:
result.content.decode('ISO-8859-1')
Si marca result.headers["Content-Type"]
, su código puede adaptarse a los cambios en el otro extremo. Generalmente puede pasar el juego de caracteres (ISO-8859-1 en este caso) directamente al método de decodificación Python.
Otros consejos
Como llegar google.com que vi?
Es probable que el uso de URLs relativas a las imágenes, JavaScript, CSS, etc., que no se está cambiando en direcciones URL absolutas en el sitio de Google. Para confirmar esto: los registros deben estar mostrando errores 404 ( "página no encontrada") como el navegador a la que usted está sirviendo intentos "sólo el HTML" localizar los recursos en relación con la dirección que no está suministrando
.