8

ここ Google App Engines で、URL によって任意の Web ページの HTML コードを取得するのに役立つ次のコードを取得しました。

from google.appengine.api import urlfetch
url = "http://www.google.com/"
result = urlfetch.fetch(url)
if result.status_code == 200:
doSomethingWithResult(result.content)

ここで(実際には他の多くのことの中で)1つのことを理解していません。なぜこのコードで google.appengine.api から urlfecth をインポートすることが提案されているのですか?Python にはこのコマンドがありませんか?

4

2 に答える 2

17

PythonにはURLをフェッチするためのurllibやhttplibなどのライブラリがありますが、App Engineでは、すべてのリクエストはカスタムurlfetchライブラリを経由する必要があります。App Engineには、内部でurlfetchを使用させるurllibとhttplibのスタブが含まれていますが、選択肢がある場合は、urlfetchを直接使用する方が効率的で柔軟性があります。

于 2009-12-12T14:59:32.347 に答える
6

google.appengine.apiは、Googleのバージョンのurlfetchクラスを含むライブラリです。マニュアルからの引用:

URL Fetchサービスは、効率とスケーリングの目的でGoogleのネットワークインフラストラクチャを使用します。

Pythonの標準ライブラリにもURL取得クラスがありますが、それらはAppEngine内で利用可能なインフラストラクチャを使用できません。

要するに、google.appengine.api urlfetchの方が強力ですが、Python独自のurllibの使用を妨げるものは何もありません。これについても、上記のリンク先のマニュアルページで説明されています。

于 2009-12-12T10:42:46.810 に答える