2017-03-31 3 views
3

私は別のページのソースを読み込むページを開発しており、そのページから特定の情報を抽出する必要があります。私は現在、ライブソースにデータを突きつけるプロジェクトを持っていますが、私の人生ではこの文字列を文書に変換する方法を理解できません。GET HTML応答を文書に変換する

文書を使用するための私の理論的根拠は、これらの項目の価値を得るためにgetElementByIdなどを使用する必要があるということです。

私は何を試しましたか?

  1. マイページの不可視divにHTMLを割り当てる。この種の作品は、HTML文字列全体をレンダリングせず、このページの「短い」レンディションを提供します。

  2. 手動で部分文字列を検索する。あなたが想像することができるように、これはやっかいなやり方であり、非常に信頼できない結果をもたらします。

  3. docを変換して照会するDOMパーサーですが、それは悲惨に失敗します。

ご協力いただきまして誠にありがとうございます。

関連コード:

$.ajax({ 
    method: "GET", 
    dataType: '', 
    crossDomain: true, 
    xhrFields: { 
    withCredentials: true 
    }, 
    success: function(res) { 
    //shows the entire source just fine. 
    console.log("Value of RES: " + res); 
    bootbox.hideAll(); 
    //shows a "truncated" copy of the source 
    alert(res); 
    $("#hiddendiv").html(x); 
    var name = document.findElementById("myitem"); 
    alert(name); 
    }, 
+0

CheerioでHTML文字列を解析しようとしましたか? –

+0

@PatrickHundしかし、私はここで問題はないが、このページはローカルに配布されるスタンドアロンのページであるということです。 – basic

+0

私は、あなたが解析したいHTMLコードと、データを抽出するために実行されたクエリーを持つ文字列を持っていることを理解していました。それはまさにCheerioのためのものです –

答えて

0

ドキュメントの隠しIFRAMEを作成します。そのIFRAMEの内容を照会するHTMLに設定します。あなたがあなたの質問をするときにあなたのJavaScriptでIFRAMEをターゲットにしてください。方法については、How can I access iframe elements with Javascript?を参照してください。

-2

もう1つ(おそらく良い)オプションは、jQueryを使用することです。 jQueryを使用すると、HTMLを作成し、操作し、メモリ内でそれに対してクエリを実行できます。 jQueryのDOM要素のクエリは、純粋なjavascriptよりも簡単です。参照:http://jquery.com/

//Get a jQuery object representing your HTML 
var $html = $("<div><span id='label'></span></div>"); 

//Query against it 
var $label = $html.find("#label"); //finds the span with and id of 'label' 
+0

質問には 'jquery'というタグが付き、' $ .ajax'と '.html()'が使用されています。かなり彼らはjQueryについて知っている。 –

+0

@MikeMcCaughanそうですね、彼らはすでにjQueryを使っていました。私が指摘していることは、彼らがさらに問題を解決するためにそれを使うことができるということです。照会できるようにHTMLをブラウザのドキュメントに入れようとするのではなく、文字列HTMLを取り出してjQueryオブジェクトに変換し、メモリ内で直接照会することができます。パフォーマンスが向上し、ブラウザに表示されているページに問題が導入されません。 – Trevor

関連する問題