Node.js 我应该用哪一个从Google appEngine、computeEngine或cloudFunctions网站抓取数据

Node.js 我应该用哪一个从Google appEngine、computeEngine或cloudFunctions网站抓取数据,node.js,google-app-engine,google-compute-engine,google-cloud-functions,cheerio,Node.js,Google App Engine,Google Compute Engine,Google Cloud Functions,Cheerio,我想构建一个nodejs应用程序,每隔20分钟从网站上抓取数据,并将其存储在firebase中。你能告诉我谷歌的哪个产品(计算引擎、应用引擎或云功能)对这个需求有效吗?下面是我希望做的事情, 1.运行Nodejs和cheerio从网站中抓取数据并存储在firebase中 2.最初计划运行20分钟,之后可能会将其更改为30分钟或1小时 阅读文档后,我知道有太多的方法来实现这一点,但我正在寻找一种成本/资源有效的方法 指针和想法会很好。在应用程序引擎中托管Node.js应用程序,因为云函数是事件驱动

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

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


指针和想法会很好。

在应用程序引擎中托管Node.js应用程序,因为云函数是事件驱动的。您可以使用App Engine standard或App Engine flexible environment。对于调度部分,谷歌云平台有一个Cron服务,您可以为任务引擎创建Cron作业。您可以在这里找到一个示例设计。

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

如果您正在进行大量并发处理,那么我会说使用云功能进行处理。

这样做的另一个好处是您的ip不会被阻止,因为每次都会不同。


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

一个经济高效/简单的方法是使用cronjob.org,让它向您的云函数url发送http请求以触发它。如果您担心其他人触发它,请告诉您的cronjob发送一个带有api密钥的http头。在云函数代码中检查此api密钥,以验证cronjob.org是否发送了请求。我不认为这比这更容易/更便宜。

“要求我们推荐或查找书籍、工具、软件库、教程或其他非现场资源的问题对于堆栈溢出来说是离题的,因为它们往往会吸引固执己见的答案和垃圾邮件。相反,请描述问题以及迄今为止为解决问题所做的工作。”这些产品中的每一种都可以用来实现您想要的功能。对我最好的并不一定对你们最好,所以并没有客观的方法来正确回答,这正是为什么这些问题在堆栈溢出问题上是离题的。我建议您选择一个,并尝试实现您的用例。谢谢FrankPguardiario。当你说“这样做的另一个好处是,你的ip不会被阻止,因为每次都会不同。”当你通过功能进行操作时,你不会被阻止,是吗?不,我的意思是功能每次都会使用不同的ip地址,而app engine每次都会使用相同的ip地址。因此,更难阻止该函数。