1

HTMLページからデータを取得するために使用される古いJavaプログラムがあり、数年前は問題なく動作していましたが、現在は実行するとデータがありません。ページのリンクは次のとおりです。

http://www.batstrading.com/book/ibm/

Java プログラムから取得した html テーブルは引き続き表示されますが、データはありませんが、ブラウザーを使用してそのページにアクセスすると、データが動的に変化することがわかります。なぜですか?

ページから Java プログラムで取得した html テキストは、ブラウザのビュー ソースから表示できるテキストに似ています。次のようになります。

    <tbody>
      <tr>
        <td class="shares">&nbsp;</td>
        <td class="price">&nbsp;</td>
      </tr>

データの代わりに、それが表示されています&nbsp;

データを取得するためにコードを修正するにはどうすればよいですか? つまり、Java プログラムに問題はなく、ブラウザのビュー ソースと同じようにテキストが取得されます。データは表示されません。ページが動的になったためです。Java を使用してデータを取得する方法動的ページが問題です。

4

2 に答える 2

0

ページを直接ダウンロードしてこれを行うことはできません。ここには 2 つのオプションがあります。個人的には、CasperjsまたはSeleniumを使用してページ上の JavaScript を操作します。それ以外の場合は、javascript が行っていることを手動でシミュレートする必要があります。これは、一般に、持続性やスケーラビリティがあまり高くありません (サイトに関する何かを変更すると壊れてしまいます)。

これらのツールはブラウザーをエミュレートし、特定の要素が読み込まれるまで待機できるようにします。

このような種類の Web ブラウザーは他にも多数ありますが、Casper を強くお勧めします。Casper は Javascript であるため、Java スクリプト内からでも簡単に呼び出すことができます。Java から JavaScript を呼び出す方法については、こちらを参照してください。

于 2013-07-11T15:49:38.553 に答える