0

我正在尝试从页面中抓取一些数据,但我是 jsoup 的初学者 - 而不是经验丰富的 java 开发人员:)

html示例是:

<tr class="divider">
    <td class="betona text">hello1</td>
    <td>1 712 000</td>
    <td>3 661 000</td>
    <td>1 727 000</td>
    <td>1 011 000</td>
    <td>14 813 000</td>
</tr>
<tr>
    <td class="text">hello2</td>
    <td>1,84</td>
    <td>4,85</td>
    <td>2,29</td>
    <td>1,34</td>
    <td>19,61</td>
</tr>
<tr>
    <td class="text">hello3</td>
    <td>931 739 034</td>
    <td>755 407 422</td>
    <td>755 407 422</td>
    <td>755 407 422</td>
    <td>755 407 422</td>
</tr>
<tr>
      <td>&nbsp;</td>
</tr>
<tr>
    <th class="text">hello4</th>
    <th>2011</th>
    <th>2010</th>
    <th>2009</th>
    <th>2008</th>
    <th>2007</th>
</tr>
<tr>
    <td class="text">hello5</td>
    <td></td>
    <td></td>
    <td>8 800 000</td>
    <td>9 302 000</td>
    <td>9 312 000</td>
</tr>

hello1 hello2...我可以使用以下代码获取列表显示等 - 但是hello4如果这是我唯一需要的,我如何才能在下面获取这些数据?

931 739 034

755 407 422

755 407 422

755 407 422

755 407 422

我目前使用的java是这样的:

Document document = Jsoup.connect(url).get();

Elements data = document.select("td[class=text]");
System.out.println("datatest1: " + data.first() + "\n");
for (Element dat : data) {
    System.out.println("datatest2: " + dat.text()); 
}
4

1 回答 1

0

根据目前给出的 HTML 代码,它是<th>没有class="text".

所以,这应该这样做:

Elements data = document.select("th:not(.text)");

也可以看看:

于 2012-12-21T15:30:45.183 回答