Почему мой код показан так же грязным, пока не так ли? [закрыто

StackOverflow https://stackoverflow.com/questions/2887734

Вопрос

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)

Когда я меняю код к этому:

if result.status_code == 200:
        self.response.out.write(result.content.decode('utf-8').encode('gb2312'))

Это показывает что-то странное. Что я должен делать?

Когда я использую это:

self.response.out.write(result.content.decode('big5'))

Страница отличается от того, что я видел Google.com.

Как получить Google.com, что я видел?

Это было полезно?

Решение

Google, вероятно, обслуживает вам ISO-8859-1. По крайней мере, это то, что они служат мне для пользовательского агента "Appengine-Google; (+http://code.google.com/appengine.) "(какой urlfetch использует). Значение заголовка типа содержимого:

text/html; charset=ISO-8859-1

Итак, вы бы использовали:

result.content.decode('ISO-8859-1')

Если вы проверяете result.headers["Content-Type"], ваш код может адаптироваться к изменениям на другом конце. Как правило, вы можете передать орнамент (ISO-8859-1 в этом случае) непосредственно к методу Python Decode.

Другие советы

Как получить Google.com, что я видел?

Вероятно, используют относительные URL-адреса к изображениям, JavaScript, CSS и др., Что вы не меняетесь в абсолютные URL-адреса на сайте Google. Чтобы подтвердить это: ваши журналы должны отображаться 404 ошибок («страница не найдена»), что и браузер, к которому вы служите «просто HTML», пытается найти относительные адресованные ресурсы, которые вы не поставляете.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top