3

リモート HTML ページ (例: www.mywesite.com/home) を解析する必要があります。この Web サイトの HTML ページのソースを取得するにはどうすればよいですか?また、このページを解析するにはどうすればよいですか?

そのhtmlはこのようなものです

 <html>
     <body>
        <div class="my-class1">
             <a href="home/link?id=1">hello</a>
        </div>

        <div class="my-class1">
             <a href="home/link?id=2">hey</a>
        </div>

        <div class="my-class1">
             <a href="home/link?id=3">bye</a>
        </div>
     </body>
 </html>

次のように出力したい

 hello
 hey
 bye 

私はサーバー側のテクノロジー(Java、.netなど)を使用していません.Javaスクリプトのみを使用してこれを実現したい

Pure javaScript またはその他の jQuery プラグインを使用してリモート HTML ページを解析することは可能ですか?

前もって感謝します

4

2 に答える 2

2

通常のブラウザの JavaScript は、独自のサーバー以外からリモート ページのコンテンツにアクセスすることはできません。

あなたはできる:

  1. リモートコンテンツを取得するために、独自のサーバーに連携スクリプトを用意します

  2. リモート サーバーの協力により、適切な CORS ( http://en.wikipedia.org/wiki/Cross-origin_resource_sharing ) 配置でコンテンツにアクセスできる場合があります。

  3. ここでもリモート サーバーの協力を得て、そのコンテンツを JavaScript で利用できるようにすると、インライン スクリプト要素を作成することでアクセスできます。「JSONP」はこのアプローチの一例です。

  4. ブラウザ プラグインまたはアドオンを作成する場合 (JavaScript での記述を許可するブラウザの場合) は、同じようにブラウザ セキュリティ モデルに拘束されません。

于 2013-04-04T13:10:56.283 に答える
-2

固定などを想定してorigin、私が使用するアプローチは次のとおりです。

// html のボディ部分を取得
txt = txt.substr( txt.indexOf('<本文>')+6 );
txt = txt.substr( 0, txt.indexof('</body>')-1 );

// body を div に貼り付けます
var div = document.createElement('div');
div.innerHTML = txt;

// 各要素 (またはもっと興味深いもの) から textContent を抽出します
Array.prototype.slice( div.querySelectorAll('*') ).forEach( function(el) {
   if( el.textContent ) console.log( el.textContent );
});
于 2013-04-04T13:17:05.650 に答える