【发布时间】:2018-09-30 15:55:57
【问题描述】:
我试图让红色节点转到我的路由器 IP 并搜索 HTML 代码以查看某个设备是否在列表中。当我右键单击 - 检查时,我可以将鼠标悬停在我感兴趣的列表上并查看我正在寻找的 HTML 信息。当我使用 HTML 节点时,它似乎只查看视图页面源信息,其中没有我要查找的内容。我有办法将 HTML 节点指向更具体的元素而不是整个页面源吗?
【问题讨论】:
我试图让红色节点转到我的路由器 IP 并搜索 HTML 代码以查看某个设备是否在列表中。当我右键单击 - 检查时,我可以将鼠标悬停在我感兴趣的列表上并查看我正在寻找的 HTML 信息。当我使用 HTML 节点时,它似乎只查看视图页面源信息,其中没有我要查找的内容。我有办法将 HTML 节点指向更具体的元素而不是整个页面源吗?
【问题讨论】:
听起来您的路由器页面中的数据可能是使用 JavaScript 动态生成的。
这意味着当页面加载时,它只有大纲,其余部分由代码使用 XHResquests 填充到提供信息的不同 URL。
为了让 Node-RED 能够从页面中提取信息,它需要加载大纲,然后有效地运行所有 JavaScript。 PhantomJS 之类的库
有一个 contrib 节点可能可以帮助node-red-contrib-nbrowser,但更好的方法可能是计算出 JavaScript 调用的 URL 并直接调用它,因为数据最有可能采用以下格式更易于处理(例如 JSON)
【讨论】:
node-red-contrib-nmap 之类的东西可能会有所帮助(我自己没用过)。
node-red-contrib-nbrowser 或 node-red-contrib-nmap 或 OpenWrt API(我没有这方面的经验)。