这是很难使用正则表达式即使在高层次的语言做。但是你可以将html注入到当前的DOM中,或者例如在隐藏的iframe中。然后,您将构建一个“节点漫游者”,沿着DOM树向下搜索并收集HTML节点的“内部文本”。只要DOM代表它们,您就可以使用本机DOM解析器获得您想要的东西。
我这样做一次,它的工作是这样的:
var nodes = document.getElementsByTagName('BODY');
function nodeWalker(node) {
if(!node.hasChildNodes()) {
return;
}
for(var i=0; i
// filter by node type == 3 equals TEXT_NODE
if((node.childNodes[i].nodeType == 3) && node.childNodes[i].nodeValue.length > 0) {
// extract content in node.childNodes[i].nodeValue
}
// type == 1 equals ELEMENT_NODE
else if(node.childNodes[ i ].nodeType == 1) {
nodeWalker(node.childNodes[i]);
}
}
}
另一种方式是使用AJAX和服务器端DOM解析器。