Html 如何在node.js中查找大型对象中的特定值?
实际上,我已经使用解析过一个网站,我想在解析过的对象中找到一个特定的值,例如,字符串$199,并通过定期解析来跟踪该元素,以查看值仍然是$199或已更改 在用我的眼睛进行了一些痛苦而愚蠢的搜索之后,我发现那根绳子就在这样的地方:Html 如何在node.js中查找大型对象中的特定值?,html,parsing,node.js,Html,Parsing,Node.js,实际上,我已经使用解析过一个网站,我想在解析过的对象中找到一个特定的值,例如,字符串$199,并通过定期解析来跟踪该元素,以查看值仍然是$199或已更改 在用我的眼睛进行了一些痛苦而愚蠢的搜索之后,我发现那根绳子就在这样的地方: price = handler.dom[3].children[3].children[3].children[5].children[1]. children[3].children[3].children[5].children[0].childre
price = handler.dom[3].children[3].children[3].children[5].children[1].
children[3].children[3].children[5].children[0].children[0].raw;
所以我想知道是否有一些方法可以减轻痛苦?谢谢 基于树的递归搜索可能最容易获得您感兴趣的节点 我没有使用过HTMLPasser,文档似乎有点单薄,因此这只是一个让您入门的示例,没有经过测试:
function getElement(el,val) {
if (el.children && el.children.length > 0) {
for (var i = 0, l = el.children.length; i<l; i++) {
var r = getElement(el.children[i],val);
if (r) return r;
}
} else {
if (el.raw == val) {
return el;
}
}
return null;
}
调用getElementhandler.dom[3],“$199”,它将递归地遍历所有子元素,直到找到一个没有子元素的元素,然后将其原始值与“$199”进行比较。注意:这是一个直接的比较,您可能希望将其替换为regexp或类似的?您的问题不清楚:您是否试图确认文档中存在值“$199”,在这种情况下,原始HTML上的regexp可能是最简单的,还是试图查找它所定义的DOM节点或其周围的上下文,或者…?已更新。希望它足够清晰,谢谢