【发布时间】:2009-03-24 07:44:38
【问题描述】:
考虑到我正在运行免费启动版本,是否不可能在 GAE 上与我的应用程序一起运行网络爬虫?
【问题讨论】:
标签: python google-app-engine web-crawler
考虑到我正在运行免费启动版本,是否不可能在 GAE 上与我的应用程序一起运行网络爬虫?
【问题讨论】:
标签: python google-app-engine web-crawler
虽然 Google 没有公开调度、队列和后台任务 API,但您只能将任何处理作为对外部 HTTP 请求的响应。您需要一些心跳服务来一次处理爬虫队列中的一项(不达到 GAE 限制)。
要从 GAE 进行抓取,您必须将应用程序拆分为队列(将队列数据存储在 Datastore 中)、对外部 HTTP 心跳和您的实际抓取逻辑做出反应的队列处理器。
您必须手动监视您的配额使用情况,并在有空闲配额时启动心跳,如果用完则停止。
当 Google 引入我一开始就告诉过的 API 时,您必须重写通过 Google API 更有效地实现的部分。
更新:Google 前段时间引入了任务队列 API。请参阅task queue docs for python 和java。
【讨论】:
App Engine 代码仅在响应 HTTP 请求时运行,因此您无法在后台运行持久爬虫。随着计划任务的即将发布,您可以编写一个使用该功能的爬虫,但这并不理想。
【讨论】:
我想你可以(即,不是不可能)运行它,但它会很慢,你会很快遇到limits。由于 CPU 配额将在 5 月底进一步降低,我建议不要这样做。
【讨论】:
这是可能的。但这并不是 Arachnid 所写的真正的 appengine 应用程序。如果你设法让它工作,我怀疑你会留在免费帐户的配额中。
【讨论】: