gpt4 book ai didi

java - Jsoup,无法从表中获取元素

转载 作者:行者123 更新时间:2023-12-01 14:44:39 26 4
gpt4 key购买 nike

我最近一直在摆弄Jsoup。我的 friend 喜欢为暗黑破坏神购买黄金,所以我想为他制作一个小程序,从各个网站获取价格并将其呈现给他,这样他就可以花尽可能少的钱。通常,我可以这样抢到价格;

Document Fasteve;

try {

Fasteve = Jsoup.connect("http://www.fasteve.com/diablo-3/Gold/?st=US(Normal)").get();
Elements Price = Fasteve.select("table[class=table_2] tr:eq(5) td:eq(1)");

System.out.println("http://www.fasteve.com/diablo-3/Gold/?st=US(Normal)");
System.out.println("1000M Gold = " + Price.text());

} catch (IOException e) {
e.printStackTrace();
}

但是我无法使用该方法。我也不能使用您声明要从中获取的 tr 和 td 的方法,因为..对于此站点,所有 tr 都具有相同的类,因此我无法调用

Elements Price = Fasteve.select("table[class=table] tr[class=row] td:[class=column]");

The table I am grabbing data from

关于如何获取该值有什么想法吗? (64.37)再次感谢 Stackoverflow。

最佳答案

考虑

  • 创建一个包含 td1 字符串和 td2 或价格字符串的类,假设我们将其称为 DiabloGoldRow 或类似名称。
  • 创建此类的集合,例如 ArrayList<DiabloGoldRow> ,或者如果您希望能够基于 td1 字符串快速获取信息,则 HashMap<String, DiabloGoldRow> .
  • 然后使用 JSoup 隔离表中的信息,然后在 for 循环中对其进行迭代,创建 DiabloGoldRow 对象的实例并将它们放入 ArrayList 或其他集合(即 HashMap)中。

我将留下代码的详细信息作为学生的练习。

编辑
你问,

Why do I need to create a separate class to hold the variables?

因为您需要将每一行中的两条信息紧密结合在一起,并且可能需要搜索其中一条信息来获取另一条信息。这样做比使用二维数组或并行数组要干净得多。您反对这样做的理由是什么?

编辑2
你说,

I am not opposed to anything. I'm simply wondering how that will help me grab the values I need. My question was using the methods I normally do, I cannot grab the data I want to. I was simply looking for a different syntax to grab the specified data.

同样,有一种方法可以使用 for 循环来完成此操作。只需循环遍历表的行即可:

  Elements eles = doc.select("table tr");

for (int i = 0; i < eles.size(); i++) {
Elements rowEles = eles.get(i).select("form");

Elements goldEles = rowEles.select("[name=gold]");
String goldValue = goldEles.attr("value");

Elements priceEles = rowEles.select("[name=price]");
String priceValue = priceEles.attr("value");

System.out.printf("%-7s: %-5s%n", goldValue, priceValue);
}

关于java - Jsoup,无法从表中获取元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15560288/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com