从 URL 加载网页作为 html 以使用 Firebase 函数构建价格跟踪器

Posted

技术标签:

【中文标题】从 URL 加载网页作为 html 以使用 Firebase 函数构建价格跟踪器【英文标题】:Loading a webpage from a URL as an html to build a price tracker using Firebase Functions 【发布时间】:2020-09-25 16:27:14 【问题描述】:

首先我对这种类型的开发非常陌生

我正在尝试使用 firebase 云功能构建价格跟踪器以从网页进行跟踪

假设我想跟踪这个产品: https://www.jarir.com/sa-en/apple-magic-keyboard-mouse-combo-547294.html

    如何使用 typeScript lang 在我的云函数项目中加载此页面并将其作为 html 或字符串保存在 const 中?

这是我使用pubsub 每 30 分钟触发一次此事件:

import * as functions from 'firebase-functions';
import admin = require('firebase-admin');

export const priceTracker = functions.pubsub.schedule('every 30 minutes')
.onRun(async(context) => 

    // 1- How to load this page: https://www.jarir.com/sa-en/apple-magic-keyboard-mouse-combo-547294.html 
    // and save it in a `const` as an html or string 

    // 2- How to extract the price from the html const and save the result into my firestore database
);

提前谢谢????

【问题讨论】:

您需要使用 node.js 库,它允许您进行一些网页抓取,然后分析页面以提取所需的数据。请参阅此博客文章,它可能会对您有所帮助:levelup.gitconnected.com/web-scraping-with-node-js-c93dcf76fe2b。此外,请注意您需要使用“Blaze”定价计划。事实上,免费的“Spark”计划“只允许向 Google 拥有的服务发出出站网络请求”。请参阅firebase.google.com/pricing(将鼠标悬停在“云功能”标题后面的问号上) 【参考方案1】:

这确实是一个广泛的话题,很难在 Stack Overflow 的答案中完全回答。我要做的是帮助您将其分解为更小的步骤,并为这些步骤提供链接。

在所有这些中,意识到这一点确实很有帮助:

    Cloud Functions 大部分只是由 Google 机器管理的小型节点模块。因此,如果您想在 Cloud Functions 中执行某些操作,请考虑如何在 Node.js 中执行。 Node.js 实际上只是在服务器上运行的 javascript。因此,如果您想在 Node.js 中做一些事情,请考虑如何在“普通旧 JavaScript”中进行。

考虑到这一点:

    将 HTML 页面从 URL 加载到 Cloud Functions 代码中

    搜索Loading a HTML page from a URL in Node.js 似乎有一些不错的结果,包括Get URL Contents in Node.js with Express。

    在 HTML 中查找价格归结为解析该 HTML。这个链接似乎是一个很好的起点:Extracting table value from an URL with Node JS,搜索Parsing a HTML page from a URL in Node.js可以获得更多好的结果

    最后:按照adding data to the database 上的文档,将生成的 HTML 或值存储到 Firestore 中应该相当简单。

【讨论】:

以上是关于从 URL 加载网页作为 html 以使用 Firebase 函数构建价格跟踪器的主要内容,如果未能解决你的问题,请参考以下文章

如何从 iframe 获取当前页面加载的 url [重复]

以编程方式获取加载 URL 时调用的 API 列表

当我使用完整的图像图像路径尝试它时,网页上没有显示 HTML 图像,使用图像的 url 作为图像源没有问题

从 IPersistMoniker 加载 HTML 以将基本 URL 添加到相关链接

解析 HTML 源代码以获取没有错误的图像的 url。 (首选 Python)[关闭]

如何使用 javascript 从网页中获取所有图像 url?