0

タイトルの通り..

外部 Web サイトのテーブルから特定のセル情報を収集しようとしています。次に、自分のテーブルのセルに値を表示したいと思います。これは、「更新」ボタンを押すなどのイベントで実行されます。

外部サイトは、テーブルを次のようにフォーマットします。

<table class="data-table">
        <tr>
            <td class="label">jhgjghgf:</td>
            <td class="data">0.20079</td>
            <td class="spacer"><span></span></td>
            <td class="label">hdfxshgx:</td>
            <td class="data">-0.383</td>
        </tr>
        <tr>
            <td class="label">kjhgk:</td>
            <td class="data">90.008</td>
            <td class="spacer"><span></span></td>
            <td class="label">kjhg:</td>
            <td class="data">N/A</td>               
        </tr>
</table>

行 2 列 2 だけを収集して、自分のテーブルに値を表示しようとしているとしましょう。私に何ができる?

申し訳ありませんが、サイト全体がこれを機能させることができるかどうかにかかっているため、まだコーディングを開始していません。

4

5 に答える 5

2

jQuery を使用すると、次のようにこの値を取得できます。

$('.data-table tr:nth-child(2) td:nth-child(2)').text()

AJAX 経由で外部サイトのテーブルを要求し、テーブルから値を取得する場合は、次のように実行できます。

$.get(<url of external site>).function(result) {
     var value = $(result).('.data-table tr:nth-child(2) td:nth-child(2)').text();
     // now add this value to your table, e.g. $('.my_table td')[0].text(value);
};
于 2013-07-23T06:33:15.703 に答える
2

サーバー言語ライブラリ経由でこれを行う必要があります (つまり、Coldfusion http() または PHP HttpRequest() 経由)。

純粋な js を介して (ajax/jQuery を介して) これを行うことができますが、クロス ブラウザー ルールがあり、ファイルにアクセスするように設定されている場合に限ります (つまり、マイニングしている他のサイトで許可を与える必要があります。https://www.詳しくはbionicspirit.com/blog/2011/03/24/cross-domain-requests.htmlをご覧ください)。

一部の古いブラウザーでは x-browser 要求を回避できる場合がありますが、新しいブラウザーではそうではありません。

その問題を乗り越えることができれば、jQuery は、結果のリクエストから CSS ベースのセレクターを使用するのが最も簡単になります (jQuery ajax を使用することになる場合)。

myData = $('.data-table tr:nth-child(2) td:nth-child(2)');

これにより、2 行目の 2 番目のテーブル セル要素が jQuery ラップ セットとして取得されます。

于 2013-07-23T06:33:40.483 に答える
0

ここで達成しようとしていることは危険であると考えられており、避けるべきです。

AJAX を試して外部サイトのコンテンツを取得するよう求める初心者からの回答は無視してください。ブラウザによって実装された同一オリジン ポリシーにより、これは不可能です。つまり、サイトから他の Web サイトに AJAX リクエストを送信することはできません。

を使用して他のサイトのページを含める方法はありますがiframes、どちらもお勧めしません。

あなたの最善の策は、問題のページを取得し、それを解析して必要な値を取得するためにサーバー側のテクノロジーに依存することです.

サーバー側のテクノロジーについて言及していないため、コード例を提供することはできません。

于 2013-07-23T07:29:27.977 に答える