1

我正在尝试使用 JSoup 从页面上抓取一些信息,这些信息可以通过一组特定顺序的标签来识别。它们的顺序如下:

 <span class="sold" >Sold</span></td>
    <td class='prc'>
        <div  class="g-b bidsold" itemprop="price">
                AU $1.00</div>              

我正在寻找代替页面上 AU $1.00 字段的每个值,但它们只能由span class="sold"预先出现几个标签的选择器识别。

我尝试过类似的东西,select("span.sold:lt(4) + [itemprop=price]")但感觉就像我在黑暗中四处乱窜!

4

2 回答 2

1

下面的代码应该可以解决问题!!!

Document doc = Jsoup.connect(/*URL of your HTML document*/").get();
Element part = doc.body();
Elements parts = part.getElementsByTag("div");
String attValue;
String requiredContent;
for(Element ent : parts)
{
    if(ent.hasAttr("class"))
    {
        attValue = ent.attr("class");
        if(attValue.equals("g-b bidsold"))
        {
            System.out.println("\n");
            requiredContent=ent.text();
            System.out.println(requiredContent);
        }
    }
}

只需确保迭代并在数组中获取输出。

于 2013-02-13T12:45:19.533 回答
1

你也可以这样做:

Elements soldPrices = doc.select("td:has(.sold) + td [itemprop=price]");

这将返回具有价格 itemprops 的元素(DIV),这些元素立即具有前面带有 class=sold 的元素(SPAN)的 TD。

有关更多详细信息,请参阅选择器语法

于 2013-02-19T07:40:29.020 回答