拉数据jsoup

时间:2012-10-31 14:38:50

标签: java jsoup

我正在尝试使用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本身没有其他值,谢谢。

2 个答案:

答案 0 :(得分:1)

我看到两个问题。首先,你需要加强你的select表达式,这样它只返回itemprop等于numDownloads ex [itemprop=numDownloads]的元素。现在你的spans变量应该有一个只有一个Element的Elements集合。您可以使用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());

    }

}

答案 1 :(得分:0)

请尝试

Element dts = doc.select("dd[itemprop]").get(0);
   System.out.println(dts.text());