[英]How to filter page source to get pure HTML - no content (tags only)
有谁知道如何使用JavaScript获得给定网页的纯HTML结构(无内容)?
我正在PhantomJS中尝试这样做,它提供了两个属性(page.content和page.plainText)-第一个保存网页的内容(带有HTML元素标签),第二个保存不带任何HTML标签的内容。 不幸的是,没有这样的属性可以保存纯HTML结构。 我试图通过使用git diff(page.content和page.plainText之间的差异)来获取它,但是它没有按我期望的那样工作。
如果要获取当前页面的html,则应使用document.getElementsByTagName('html')[0].innerHTML;
。
如果要获取纯html,则可以使用递归函数来解析整个html结构并创建虚拟DOM树,然后输出其innerHTML
。
var result = document.createElement('html');
var startNode = document.getElementsByTagName('html')[0];
function parser(node, target) {
var nodes = node.childNodes;
for(var i in nodes) {
var currentNode = nodes[i];
var nodeName = currentNode.nodeName;
if(!nodeName || nodeName[0] == '#') continue;
var newNode = document.createElement(nodeName);
parser(currentNode, newNode);
target.appendChild(newNode);
}
}
parser(startNode, result);
console.log(result.innerHTML);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.