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 に答える