【问题标题】:Java HTML Parsing not getting my data?Java HTML解析没有得到我的数据?
【发布时间】:2014-12-08 02:45:45
【问题描述】:

我有以下 HTML 代码:

<tr class="odd">
    <td class="first name">
      <a href="/quote/III:LN">3i Group PLC</a>
    </td>
    <td class="value">457.80</td>
    <td class="change up">+10.90</td>        <td class="delta up">+2.44%</td>        <td class="value">1,414,023</td>
    <td class="datetime">11:35:08</td>

我需要获取数据

457.80

(即 value 属性),我目前有这个 Java 代码:

String    FTSE    =            "http://www.bloomberg.com/quote/UKX:IND/members";
    doc = Jsoup.connect(FTSE).get();
    Elements links = doc.select("a[href='/quote/III:LN']");
    for (Element link : links) {

        // get the value from href attribute
        System.out.println("\nlink : " + link.attr("value"));
        System.out.println("text : " + link.text());

当我运行我的程序时,它会终止并且没有任何输出。如何使它输出值,在本例中为“457.80”?

【问题讨论】:

  • 我认为您没有使用正确的选择器。而不是“a[href='/quote/III:LN']”尝试“td.value”。

标签: java html html-parsing


【解决方案1】:

links 将包含&lt;a href...&gt; 元素。您要检索的是完全不同元素的文本,即具有 value 类的 &lt;td&gt; 标签。

我的猜测是您有多个 &lt;tr&gt; 元素,而您只想要一个包含您选择的链接的元素。在这种情况下,您将需要以下代码:

String    FTSE    =            "http://www.bloomberg.com/quote/UKX:IND/members";
doc = Jsoup.connect(FTSE).get();
Elements trs = doc.select("tr:has(a[href='/quote/III:LN'])");
Elements values = trs.select("td.value");
link = values.get(0);
System.out.println("text : " + link.text());

或者类似的东西……

【讨论】:

  • 抱歉这个nooby问题,但我在链接下有一条红线,错误“链接无法解析为变量”,我该怎么做才能解决这个问题?
  • 元素链接 = values.get(0);
猜你喜欢
  • 2015-10-06
  • 2015-10-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-24
相关资源
最近更新 更多