所以我正在尝试使用Jsoup从this webpage获取数据...

我尝试查找许多不同的方法来做,但我已经接近了,但是我不知道如何找到某些统计信息的标签(攻击,力量,防守等)。

举例来说,我想打印出来

'Attack', '15', '99', '200,000,000'


我应该怎么做呢?

最佳答案

您可以在CSS selectors中使用Jsoup轻松提取列数据。

// retrieve page source code
Document doc = Jsoup
        .connect("http://services.runescape.com/m=hiscore_oldschool/hiscorepersonal.ws?user1=Lynx%A0Titan")
        .get();

// find all of the table rows
Elements rows = doc.select("div#contentHiscores table tr");
ListIterator<Element> itr = rows.listIterator();

// loop over each row
while (itr.hasNext()) {
    Element row = itr.next();

    // does the second col contain the word attack?
    if (row.select("td:nth-child(2) a:contains(attack)").first() != null) {

        // if so, assign each sibling col to variable
        String rank = row.select("td:nth-child(3)").text();
        String level = row.select("td:nth-child(4)").text();
        String xp = row.select("td:nth-child(5)").text();

        System.out.printf("rank=%s level=%s xp=%s", rank, level, xp);

        // stop looping rows, found attack
        break;
    }
}

07-24 14:31