繁体   English   中英

如何过滤页面源以获取纯HTML-无内容(仅标签)

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM