繁体   English   中英

使用 Jsoup 从 HTML 页面中提取数据

[英]Extracting data from HTML page using Jsoup

我正在尝试从https://secure.runescape.com/m=hiscore_oldschool/hiscorepersonal.ws?user1=Feed%20Meh%20Dog获取我的每项技能水平

这是一张桌子,但我在任何地方都看不到桌子 ID。 我只需要知道我应该使用什么 id 或 class。

尝试了多个教程,但都有一个简单的表类或 ID。 我认为我应该使用一个 div ID,只是不确定如何提取每个特定的行/技能。

最终文档文档 = Jsoup.connect(" https://secure.runescape.com/m=hiscore_oldschool/hiscorepersonal.ws?user1=Feed%20Meh%20Dog ").get();

    for (Element row : document.select("WHAT DO I PUT HERE tr")); {
        final String Attack = row.select("WHAT DO I PUT HERE")
        final String Defence = row.select("WHAT DO I PUT HERE")
        final String Strength = row.select("WHAT DO I PUT HERE")
    }

只想输出行,或者个人技能到控制台。 任何帮助将不胜感激。

如果您想轻松获取所需数据,我建议您使用官方 API。 使用此链接: https://secure.runescape.com/m=hiscore_oldschool/index_lite.ws?player= ://secure.runescape.com/m=hiscore_oldschool/index_lite.ws?player https://secure.runescape.com/m=hiscore_oldschool/index_lite.ws?player=用 Jsoup 以一种骇人听闻的方式做到这一点看起来有点像这样......

    final Document document = Jsoup.connect("https://secure.runescape.com/m=hiscore_oldschool/index_lite.ws?player=Feed%20Meh%20Dog").get();
    final Element body = document.selectFirst("body");

    String[] rawSkills = body.html().split(" ");
    ArrayList<String[]> skills = new ArrayList<>();

    for(String s: rawSkills ) {
        skills.add(s.split(","));
    }

    System.out.println(skills.get(0)[1]);

然后要选择一项个人技能,您可以执行类似skills.get(x)[y]其中 x 是该技能在数组中的索引(从 0 开始),y 是您想要的技能信息。 0 是等级,1 是技能等级,2 是经验。

API 不提供每项技能的名称,因此您必须手动执行此操作。 技能顺序与此处的高分页面相同。

编辑:我冒昧地为这个特定的端点创建了一个小的 Java 包装器,你可以在这里找到。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM