python - 从 Pixel Monitor 抓取数据
问题描述
我的本地网络上有一个 Optiheat 1-18es 热泵设备(德语:overview),我可以通过其 IP 地址对其进行监控。我以前从未使用过数据抓取,所以我不熟悉 html 结构和抓取过程。我想知道是否可以从这个设备中抓取变化的值并将它们输入到我的 influxdb 数据库中?我读到应该首先将抓取的数据放入prometheus数据格式。
我可以单击箭头并转到不同的窗口以查看其他数据点。
从网络选项卡,我收到以下信息:
解决方案
请在您的问题中包含设备的更多详细信息,以便熟悉它的其他人可以提供更准确的答案。
为了从设备中抓取指标,您需要有一个 HTTP 端点(您有这个),可以以 Prometheus 的Exposition 格式抓取指标数据(这仍未得到答复)。
从您的屏幕截图中不清楚,但我假设您有一个基于浏览器的应用程序,您指向您的设备并查询它,将指标(温度等)返回到基于浏览器的应用程序,然后应用程序将结果呈现在您显示的 HTML(可能)或设备本身正在生成您显示的 HTML 输出。
在前一种情况下(设备与应用程序对话并向其发送数据),您有两种可能性,设备是:
- 使用某些专有协议(可能)与基于浏览器的应用程序交谈。
- 已经(!)使用正确格式的 Prometheus 指标与设备通信(不太可能)。
无论哪种情况,使用浏览器的开发工具,您是否能够监控浏览器和设备之间的网络流量?您能否在问题示例中包含正在传输的 URL、请求和响应?
如果设备使用专有协议,您可以为设备编写自己的导出器。这会将设备的专有协议转换为 Prometheus Exposition 格式。然后,您将抓取您的导出器以读取指标。很可能有人已经对该设备进行了逆向工程,并且存在这样的出口商。
如果设备已经使用 Prometheus 的 Exposition 格式,我希望这会记录在设备的网站上,因为这将是一个有用的客户功能,我希望制造商希望将这一点告诉其客户。
推荐阅读
- javascript - 使用 vanilla javascript 遇到竞争条件问题
- html - 移动设备上的 HTML 输入类型 =“数字”按钮
- php - array_combine():两个参数应该有相同数量的元素,即使两个数组的长度相同
- apache-spark - 来自系统属性的 pyspark log4j 动态文件名
- lua - 返回函数作为字节码?
- r - 在 RStudio 中弹出消息框和组合框供用户输入
- angular - Angular:FormGroup 和 ngFor。如何收集数据?
- javascript - 使用 ComponentDidMount 从数据库挂载数据
- r - 在管道 R 中多次对 df 进行二次采样
- javascript - 对象作为子类中的类变量