【问题标题】:Web crawlers and Google App Engine Hosted applications网络爬虫和 Google App Engine 托管的应用程序
【发布时间】:2009-03-24 07:44:38
【问题描述】:

考虑到我正在运行免费启动版本,是否不可能在 GAE 上与我的应用程序一起运行网络爬虫?

【问题讨论】:

    标签: python google-app-engine web-crawler


    【解决方案1】:

    虽然 Google 没有公开调度、队列和后台任务 API,但您只能将任何处理作为对外部 HTTP 请求的响应。您需要一些心跳服务来一次处理爬虫队列中的一项(不达到 GAE 限制)。

    要从 GAE 进行抓取,您必须将应用程序拆分为队列(将队列数据存储在 Datastore 中)、对外部 HTTP 心跳和您的实际抓取逻辑做出反应的队列处理器。

    您必须手动监视您的配额使用情况,并在有空闲配额时启动心跳,如果用完则停止。

    当 Google 引入我一开始就告诉过的 API 时,您必须重写通过 Google API 更有效地实现的部分。

    更新:Google 前段时间引入了任务队列 API。请参阅task queue docs for pythonjava

    【讨论】:

      【解决方案2】:

      App Engine 代码仅在响应 HTTP 请求时运行,因此您无法在后台运行持久爬虫。随着计划任务的即将发布,您可以编写一个使用该功能的爬虫,但这并不理想。

      【讨论】:

        【解决方案3】:

        我想你可以(即,不是不可能)运行它,但它会很慢,你会很快遇到limits。由于 CPU 配额将在 5 月底进一步降低,我建议不要这样做。

        【讨论】:

          【解决方案4】:

          这是可能的。但这并不是 Arachnid 所写的真正的 appengine 应用程序。如果你设法让它工作,我怀疑你会留在免费帐户的配额中。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2019-08-12
            • 2018-01-24
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2013-09-29
            • 1970-01-01
            相关资源
            最近更新 更多