0

我正在使用 jsoup 进行网页抓取,但遇到了另一个问题。我需要信息的 div 没有类、id 或任何特殊指示。它隐藏在页面中。这里是:

<div class="column">
    <div class="form-label">Rate: </div>
    <div>11.082/11.167</div>
    <div class="form-label padding-top">High/Low: </div>  
    <div>1005.0/0.0004</div>
</div>

我需要获得第一组数字,但我不确定如何告诉 jsoup 我特别想要它们;有人有建议吗?

4

2 回答 2

1
  1. 选择所有divclass="column"
  2. 循环浏览您的选定元素列表。选择元素内包含文本的第一个 divRate:
  3. 你的 Text 在 2. div 里面

抱歉,代码格式不起作用 o.0

public String getRage(Document document) {
    for(Element e : document.getElementsByClass("column")) {
        if(e.getElementsByTagName("div").get(0).ownText().equals("Rate: ")) {
            return e.getElementsByTagName("div").get(1).ownText();
        }
    }

    return null;
}
于 2013-06-30T14:21:22.290 回答
1

假设doc是您的 Document 对象...

doc.select('.column > div:eq(1)');

应该做的工作,你基本上按类选择父 div,然后获取所有子 div,但过滤子 div,以便返回索引 1 处的元素(这是一个从零开始的索引,所以索引 1 是第二个元素)

就个人而言,我会切换到 jQuery,因为它使用了更好的选择器引擎,但每个引擎都有自己的......

于 2013-06-30T14:25:43.133 回答