0

HTMLからコンテンツ全体を読み取るコードを処理しました。

URL url = new URL("https://idms.sunamerica.com/v2/market/home.idms");
             Document doc = Jsoup.parse(url, 5*1000);
             TextNode tn = new TextNode(doc.body().html(), "");
                String entireText = tn.getWholeText();

現在、 wholeText には以下のテキストが含まれています

<tr class="evenrow" onmouseover="loadMiniChart(\'S&amp;P Midcap 400\',8318990,\'market_mini_chart\')">
       '); document.write('
       <td>
        <div align="left">
         S&amp;P Midcap 400 Index
        </div></td>'); document.write('
       <td>1254.56</td>'); document.write('
       <td><span class="negative">-2.83</span></td>'); document.write('
      </tr>');

ここで、文字列「S&P Midcap 400 Index」を使用して値 1254.56 を取得する必要があります。

テキストを一致させる方法はありますか?? 助けていただければ幸いです....:)

4

2 に答える 2

0

残念ながら、ここで Jsoup を使用してできることはあまりありません。抽出する必要があるテキストはスクリプト ノード内にあり、Jsoup が処理するのは HTML ではなく JavaScript であるためです。

できることは、

  • 必要なテキストを手動で抽出してみることができます
  • またはSeleniumでページをレンダリングしてから、ページソースを取得してJsoupで解析します
  • または Web ブラウザーでページを開き、ディスクに保存してから解析する

Jsoup の例に関しては、html から TextNode を作成する必要はありません。doc.body() でツリーを取得し、Jsoup API: CSS セレクターまたはツリー API メソッド (children、first など) でナビゲートします。

于 2013-09-20T21:05:42.577 に答える