使用JSoup从HTML中提取<data-id>

时间:2018-02-01 12:09:17

标签: java html jsoup

我是Jsoup的新人,我试图使用Jsoup从网站上删除一些数据。 我想只提取特定<data-id>节点下的数据。 这是网页结构

<tr data-id="13">
  <td class="th">Dimension</td>
  <td class="l">152.5x82x9.8mm (6x3.23x0.39")</td>
</tr>
<tr class="even" data-id="15">
  <td class="th">Weight</td>
  <td class="l">190gr (6.7oz)</td>
</tr>
<tr class="h" data-id="116">
   <td class="th">Ringtone</td>
   <td class="l"></td>
</tr>

我需要得到类似的东西

  1. 尺寸
  2. 190gr
  3. 铃声 请帮助我。
  4. 这是我试过的

     public static void main(String[] args) throws Exception{
    
        final Document document =  Jsoup.connect("url").get();
    
        String testString = document.select("table")
                .select("tbody").select(".even")
                .select("td.l").text();
        System.out.println("the tile is "+testString);
        }
    }
    

    这是输出:152.5x82x9.8mm(6x3.23x0.39&#34;)190gr等等

1 个答案:

答案 0 :(得分:2)

    Document out = Jsoup.connect("https://www.phonegg.com/phone/9858-Energizer-Power-Max-P600s-32GB/%22")
            .timeout(15000).get();
    String dimension = out.getElementsByAttributeValue("data-id", "13").get(0).getElementsByClass("l").text();
    String weight = out.getElementsByAttributeValue("data-id", "15").get(0).getElementsByClass("l").text();
    String rington = out.getElementsByAttributeValue("data-id", "116").get(0).getElementsByClass("l").text();