なぜ私のコードは乱雑であると表示されているのですか? [閉まっている
-
04-10-2019 - |
質問
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"]
, 、コードは反対側の変更に適応できます。通常、Charset(この場合はISO-8859-1)をPythonデコードメソッドに直接渡すことができます。
他のヒント
私が見たGoogle.comを入手する方法は?
おそらく、Googleのサイトに絶対URLに変更されていない画像、JavaScript、CSSなどに相対URLを使用しているでしょう。これを確認するには、「HTMLのみ」を提供するブラウザが、提供されていない相対的なアドレスリソースを見つけようとするブラウザとして、ログに404エラー(「ページは見つかりません」)を表示する必要があります。
所属していません StackOverflow