【问题标题】:Web Scraping with Google Compute Engine / App Engine使用 Google Compute Engine / App Engine 进行网页抓取
【发布时间】:2015-04-25 04:59:52
【问题描述】:

我编写了一个 python 脚本,它使用 Selenium 从网站上抓取信息并将其存储在 csv 文件中。当我手动执行它时,它在我的本地机器上运行良好,但我现在想每小时自动运行一次脚本,持续数周,并保护数据库中的数据。运行脚本可能需要大约 5-10 分钟。

我刚开始使用 Google Cloud,看起来有几种方法可以使用 Compute Engine 或 App Engine 来实现它。到目前为止,我到目前为止发现的所有三种方式都卡在了某个点上(例如,让计划任务调用我的后端实例的 URL 并让该实例启动脚本)。我尝试过:

  • 通过 Compute Engine 执行脚本并使用数据存储或云 sql。不清楚是否可以轻松设置 crontab。
  • 在 App Engine 上使用任务队列和计划任务。
  • 在 App Engine 上使用后端实例和计划任务。

鉴于这确实是一个不需要用户前端的后端脚本,我很想听听其他人推荐的最简单和最合适的方法。

【问题讨论】:

  • 您不能在纯 App Engine 上运行 Selenium,除非在托管 VM 上运行,后者更像是 Compute Engine。您在配置 cron 作业以在 Compute Engine 上运行单个脚本时遇到什么问题?有太多方法可以做到这一点。

标签: python google-app-engine cron web-scraping google-compute-engine


【解决方案1】:

App Engine 是可行的,但前提是您将 Selenium 的使用限制在 .remote 到诸如 http://crossbrowsertesting.com/ 之类的网站上——可行但混乱。

我会使用 Compute Engine——cron 在任何 Linux 映像上使用都很简单,请参阅例如 http://www.thegeekstuff.com/2009/06/15-practical-crontab-examples/

【讨论】:

  • 谢谢亚历克斯。我已经使用 crontab 和 GCE 启动并运行了脚本。顺便说一句,似乎也可以使用“虚拟帧缓冲区”运行 Selenium。我找到了这篇文章:stackoverflow.com/questions/20032470/…
猜你喜欢
  • 1970-01-01
  • 2018-04-28
  • 2018-02-14
  • 2017-11-17
  • 2017-03-02
  • 1970-01-01
  • 2013-10-09
  • 1970-01-01
  • 2016-09-26
相关资源
最近更新 更多