1
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を入手するにはどうすればよいですか?

4

2 に答える 2

3

GoogleはおそらくISO-8859-1を提供しています。少なくとも、それがユーザーエージェント「AppEngine-Google;(+ http://code.google.com/appengine)」(urlfetchが使用する)に役立つものです。Content-Typeヘッダー値は次のとおりです。

text/html; charset=ISO-8859-1

したがって、次を使用します。

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

チェックするresult.headers["Content-Type"]と、コードはもう一方の端の変更に適応できます。通常、文字セット(この場合はISO-8859-1)をPythonデコードメソッドに直接渡すことができます。

于 2010-05-22T10:51:51.553 に答える
1

私が見たgoogle.comを取得する方法は?

おそらく、画像、JavaScript、CSSなどへの相対URLを使用しているので、Googleのサイトへの絶対URLに変更していません。これを確認するには、「HTMLのみ」を提供しているブラウザが、提供していない相対アドレスのリソースを見つけようとするため、ログに404エラー(「ページが見つかりません」)が表示されるはずです。

于 2010-05-22T17:30:02.513 に答える