使用 Jsoup 从 HTML 页面中提取数据
Extracting data from HTML page using Jsoup
我正在尝试从
https://secure.runescape.com/m=hiscore_oldschool/hiscorepersonal.ws?user1=Feed%20Meh%20Dog
这是一个 table,但我在任何地方都没有看到 table ID。我只需要知道我应该使用什么 id 或 class。
尝试了多个教程,但都有一个直接的 table class 或 id。
我认为我应该使用一个 div ID,只是不确定如何提取每个特定的 row/skill。
final Document 文档 = 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")
}
只想输出行,或者在dividual skills到控制台。任何帮助将不胜感激。
如果您想轻松获得所需的数据,我建议您使用官方 API。使用这个 link:https://secure.runescape.com/m=hiscore_oldschool/index_lite.ws?player=
以一种 hacky 的方式用 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]);
然后 select 一项个人技能,你可以做类似 skills.get(x)[y]
的事情,其中 x 是数组中技能的索引(从 0 开始),y 是来自你想要的技能。 0是等级,1是技能等级,2是xp。
API 没有提供每个技能的名称,因此您必须手动进行。技能顺序与高分页面上的一样here。
编辑:我冒昧地为这个特定端点创建了一个小的 Java 包装器,您可以找到 here.
我正在尝试从 https://secure.runescape.com/m=hiscore_oldschool/hiscorepersonal.ws?user1=Feed%20Meh%20Dog
这是一个 table,但我在任何地方都没有看到 table ID。我只需要知道我应该使用什么 id 或 class。
尝试了多个教程,但都有一个直接的 table class 或 id。 我认为我应该使用一个 div ID,只是不确定如何提取每个特定的 row/skill。
final Document 文档 = 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")
}
只想输出行,或者在dividual skills到控制台。任何帮助将不胜感激。
如果您想轻松获得所需的数据,我建议您使用官方 API。使用这个 link:https://secure.runescape.com/m=hiscore_oldschool/index_lite.ws?player=
以一种 hacky 的方式用 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]);
然后 select 一项个人技能,你可以做类似 skills.get(x)[y]
的事情,其中 x 是数组中技能的索引(从 0 开始),y 是来自你想要的技能。 0是等级,1是技能等级,2是xp。
API 没有提供每个技能的名称,因此您必须手动进行。技能顺序与高分页面上的一样here。
编辑:我冒昧地为这个特定端点创建了一个小的 Java 包装器,您可以找到 here.