2016-04-14 4 views
0

JavaScriptを使用してコンテンツなしで特定のWebページの純粋なHTML構造を取得する方法を知っていますか?純粋なHTMLを取得するためにページソースをフィルタする方法 - コンテンツなし(タグのみ)

私はこの2つのプロパティ(page.contentとpage.plainText)を提供するPhantomJSでこれを実行しようとしています。最初のものはWebページのコンテンツ(HTML要素タグ)を保持し、 HTMLタグ。残念ながら、純粋なHTML構造を保持するこのようなプロパティはありません。私はgit diff(page.contentとpage.plainTextの違い)を使用して取得しようとしていましたが、期待通りに機能しません。

+0

純粋なHTML構造*とは何ですか?すべてのテキストノードを削除しようとしていますか?あなたはあなたが期待するものの例を挙げることができます、なぜこれを望みますか? –

答えて

1

現在のページの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); 
関連する問題