为何从Google App Engines导入urlfetch?

8 投票
2 回答
3407 浏览
提问于 2025-04-15 16:56

Google App Engine上,我找到了这段代码,可以通过网址获取任何网页的HTML代码:

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

我有一个地方不太明白(其实还有很多地方不明白),就是为什么这段代码建议从google.appengine.api导入urlfetch?难道Python自己没有这个命令吗?

2 个回答

17

Python有一些库,比如urllib和httplib,可以用来获取网址的内容。但是在App Engine上,所有的请求都必须通过一个叫做urlfetch的特殊库。App Engine里面有一些工具,可以让urllib和httplib在后台使用urlfetch,但如果你可以选择的话,直接使用urlfetch会更有效率,也更灵活。

6

google.appengine.api 是一个库,里面有谷歌版本的 urlfetch 类。引用一下手册中的内容

URL Fetch 服务利用谷歌的网络基础设施,以提高效率和扩展能力。

Python 自带的标准库里也有获取网址的类,但那些无法使用 App Engine 内部的基础设施。

简单来说,google.appengine.api 的 urlfetch 功能更强大,不过你也可以使用 Python 自己的 urllib,手册中也有介绍。

撰写回答