我很难尝试从软件中的网页访问数据

问题描述

我在 Delphi 7 中使用 Indy 10 尝试从我们本地网络上的硬件设备访问一些数据,但使用 TIdHTML.Get() 访问 HTML 页面仅返回基本代码而不是显示页面通过浏览器。

我已将 HTML 和 JS 文件保存到网络服务器,以便您查看它们。还包括它在浏览器中的外观的屏幕截图。

https://stationplaylist.com/temp/stl_status.html

https://stationplaylist.com/temp/stl_status.js

https://stationplaylist.com/temp/stl_status.jpg

我只想知道传入流状态是打开还是关闭,但不知道如何访问它。我希望能以某种方式使用 Indy。

解决方法

你必须明白下载是一回事(你用 Indy10 做的),解释下载是另一回事(你的互联网浏览器做的)。网络浏览器功能的简短介绍:

  • 解析下载的 stl_status.html,发现具有 src= 等属性的 HTML 元素,这意味着也下载这些文件。
  • 从HTML页面可以看到,在stl_status.js中调用了函数afterLoad(),它间接执行了get_Status(),它调用了loadDoc('/stl_data.html')(哦等等,这不是我们还没有看过的文件吗?),它(当然)会调用自己的 HTTP 来下载该文件。

很可能您不需要那样做,但可以直接下载 stl_data.html 并按照其布局进行处理(JS 文件的代码对您来说应该很容易理解)。

我再说一遍:下载文件并不意味着渲染网站。