从 Pixel Monitor 抓取数据

Posted

技术标签:

【中文标题】从 Pixel Monitor 抓取数据【英文标题】:Data-scraping from Pixel Monitor 【发布时间】:2021-11-30 04:13:56 【问题描述】:

我的本​​地网络上有一个 Optiheat 1-18es 热泵设备(德语:overview),我可以通过其 IP 地址对其进行监控。我以前从未使用过数据抓取,所以我不熟悉 html 结构和抓取过程。我想知道是否可以从这个设备上抓取变化的值并将它们输入到我的 influxdb 数据库中?我读过,要先将抓取的数据放入prometheus数据格式。

IP地址界面截图如下:

我可以单击箭头并转到不同的窗口以查看其他数据点。

从网络选项卡,我收到以下信息:

【问题讨论】:

可能有api调用或websocket连接,检查网络标签 【参考方案1】:

请在您的问题中提供有关设备的更多详细信息,以便其他熟悉该设备的人可以提供更准确的答案。

为了从设备上抓取指标,您需要有一个 HTTP 端点(您有这个),可以在 Prometheus 的Exposition Format 中抓取指标数据(这仍未得到答复)。

从您的屏幕截图中不清楚,但我假设您有一个基于浏览器的应用程序,您指向您的设备并查询它,将指标(温度等)返回到基于浏览器的应用程序,然后应用程序呈现您显示的 HTML 中的结果(可能)设备本身正在生成您显示的 HTML 输出。

在前一种情况下(设备与应用程序对话并向其发送数据),您有两种可能性,设备是:

    使用某些专有协议(可能)与基于浏览器的应用程序通信。 已经 (!) 使用正确格式的 Prometheus 指标与设备通信(不太可能)。

无论哪种情况,使用浏览器的开发工具,您是否能够监控浏览器和设备之间的网络流量?您能否在问题中包含正在传输的 URL、请求和响应的示例?

如果设备使用专有协议,您可以为设备编写自己的导出器。这会将设备的专有协议转换为 Prometheus Exposition 格式。然后,您将抓取您的导出器以读取指标。很可能有人已经对该设备进行了逆向工程,并且存在这样的出口商。

如果设备已经使用 Prometheus 的 Exposition 格式,我希望这会记录在设备的网站上,因为这将是一项有用的客户功能,并且我希望制造商希望将这一点告知其客户。

【讨论】:

感谢您的详细回答。我已经用您要求的信息编辑了我的问题。这台机器来自一家小型制造商。我怀疑他们使用普罗米修斯协议。你知道一个教程或类似的东西告诉我如何实现这个吗? 不客气!看起来它使用的是老式的 CGI 脚本,并将 HTML 直接返回到您的浏览器。您能否提供有关它是什么设备的更多详细信息? 当然。这是一个热泵。这是产品的链接(不幸的是只有德语):cta.ch/de-ch/waerme/2008/… 我已将其添加到您的问题中。也许熟悉它的人可以提供帮助!

以上是关于从 Pixel Monitor 抓取数据的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server - 监控 - Running SQL 抓取

从网站抓取数据的3种最佳方法

使用javascript呈现的内容从网页抓取数据

使用 Scrapy 抓取 Python 数据

从 JSON 中抓取数据

从晨星网络抓取财务数据