0

jsoup を使用して "10 - 50" のテキストをプルして印刷しようとしていますが、正しくプルできないようです。HTMLコードは次のとおりです。

 <dd>
        <time itemprop="datePublished">21 October 2012</time>
       </dd>
       <dt>
        Current Version:
       </dt>
       <dd itemprop="softwareVersion">
        1.0
       </dd>
       <dt itemprop="operatingSystems" content="Android">
        Requires Android:
       </dt>
       <dd>
        2.3.3 and up
       </dd>
       <dt>
        Category:
       </dt>
       <dd>
        <a href="xxx">Entertainment</a>
       </dd>
       <dt>
        Installs:
       </dt>
       <dd itemprop="numDownloads">
        10 - 50
        <div class="normalized-daily-installs-chart" style="width: 105px;">
         <img src="xxx" />
         <p>last 30 days</p>
        </div>
       </dd>
       <dt>
        Size:
       </dt>
       <dd itemprop="fileSize">
        12M
       </dd>

このコードを試してみましたが、「1.0 10 - 50 過去 30 日間 12M €0.69 全員」と出力されます。

import java.io.IOException;
import java.io.InputStream;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

public class googletest {
    public static void main(String[] args) throws IOException {

        Document doc = Jsoup
                .connect("private url"
                        )
                .get();
        Elements spans = doc.select("dd[itemprop]");
        System.out.println(spans.text());

    }

}

文字列 10 - 50 を単独で印刷したいだけで、他の値はありません。ありがとうございます。

4

2 に答える 2

1

2 つの問題があります。まず、select 式を強化して、itemprop が numDownloads ex と等しい要素のみを返すようにする必要があります。これで[itemprop=numDownloads]spans変数には要素が 1 つだけの要素のコレクションが含まれているはずです。spans.first() 単一の要素を取得したら、このメソッドを使用して ownText()要素の直接の子であるテキストを返すことができます (他の子要素のテキストは避けます)。

public class googletest {
    public static void main(String[] args) throws IOException {

        Document doc = Jsoup
                .connect("private url"
                        )
                .get();
        Elements spans = doc.select("dd[itemprop=numDownloads]");
        System.out.println(spans.first().ownText());

    }

}
于 2012-10-31T15:52:34.390 に答える
0

してみてください

Element dts = doc.select("dd[itemprop]").get(0);
   System.out.println(dts.text());
于 2012-10-31T15:50:18.150 に答える