我应该使用哪种方法从网站Google appEngine,computeEngine或cloudFunctions中抓取数据

时间:2018-06-13 07:39:38

标签: node.js google-app-engine google-compute-engine google-cloud-functions cheerio

我想构建一个nodejs应用程序,每隔20分钟从网站上抓取数据并将其存储在firebase中。你能告诉我谷歌(计算引擎,应用引擎或云功能)的哪个产品对这个要求有效,下面是我期待的事情, 1.运行Nodejs,cheerio从网站上抓取数据并存储在firebase中 2.安排它最初运行20分钟后可以改为30分钟或1小时。

阅读文档后,我知道有太多方法可以实现这一点,但我正在寻找一种有成本/资源有效的方法。

指针和想法会很好。

3 个答案:

答案 0 :(得分:0)

在App Engine [1]中托管Node.js应用程序,因为云功能是事件驱动的[2]。您可以使用App Engine标准[3]或App Engine灵活[4]环境。对于计划部分,Google Cloud Platform具有Cron服务[5],您可以为执行App Engine [6]的任务创建一个cron作业。您可以在此处找到示例设计[7]

答案 1 :(得分:0)

这取决于您的脚本花费多少时间等待请求。在此期间,剧本处于闲置状态,但您将以超高费率收费。

如果你做了很多并发,那么我会说用云功能来做。

另一个这样做的专家是你的ip不会被阻止,因为它会是每次都不一样。

关于日程安排,我不确定谷歌是否允许这样做,但我知道AWS确实如此。

答案 2 :(得分:0)

一种经济有效的方法是使用cronjob.org并将其发送http请求到您的云函数url来触发它。如果您担心其他人触发它,请告诉您的cronjob发送带有api键的http标头。在您的云功能代码中检查此api密钥,以验证cronjob.org发送了请求。我认为没有比这更容易/便宜的了。