解析HTML - 只获取表行的子集

时间:2013-02-28 20:18:33

标签: java html parsing jsoup

我遇到了问题 - 我需要从网页上的HTML表中获取几行。我有一个方法可以将随机网站的内容检索为字符串,但现在我需要解析它。我试着用这样的东西做到这一点:

示例HTML:

<table>
 <tr class="test">
        <td>1</td>
        <td>2</td>  
        <td>3</td>
        <td>4</td>
 </tr>
 <tr class="test2>
        <td>5</td>
        <td>6</td>  
        <td>7</td>
        <td>8</td>
   </tr>
 <tr class="test3>
        <td>9</td>
        <td>10</td>  
        <td>11</td>
        <td>12</td>
   </tr> 

使用这个示例HTML,我只需要值,例如:5,6,7,8。所以我有这个方法,使用JSoup定义:

String url = "a.html";
Document doc = Jsoup.connect(url).get();
Elements div = doc.select("table.domains-market-table.tbody.tr");

Element masthead = doc.select("table.domains-market-table").last();

但这会得到整个div的内容,而我想获得每个元素。谁能帮我解决这个问题?感谢。

2 个答案:

答案 0 :(得分:1)

如何使用nth-of-type(n)选择器?

或许这样的事情:

Elements div = doc.select("table.domains-market-table tbody tr:nth-of-type(2)");

http://www.w3schools.com/cssref/sel_nth-of-type.asp

http://jsoup.org/apidocs/org/jsoup/select/Selector.html

答案 1 :(得分:0)

我认为您的选择器应为:Elements div = doc.select("table.domains-market-table tr td");,而domains-market-table必须是<table>标记中定义的类。 除非您提供HTML文件,否则我无法帮助您使用正确的选择器。