1

鉴于以下情况:

<li class="med grey mkp2">
    <a href="http://www.amazon.com/gp/offer-listing/B004N627KS/ref=sr_1_1_olp?ie=UTF8&amp;qid=1357396214&amp;sr=8-1&amp;keywords=097855073358&amp;condition=new"><span class="price bld">$28.15</span> new <span class="grey">(14 offers)</span></a> </li>

我需要获取href,这听起来很简单,对吧?但是,我可以找到要从中获取的正确列表项的唯一方法是获取<span class="price bld">,因此我需要的 href 在它之前。它类似于使用 jsoup 从其他 div/id 类中的类中提取 href,但相反。

可以有许多带有 css 类“med gray mkp2”的列表项,但我只需要那些带有 class="price bld" 的跨度的内容。

我怎样才能做到这一点?

4

1 回答 1

3

只能选择目标元素(the <a>),不能选择子元素(the <span>),否则只会返回<span>元素。在这种特殊情况下,您可以使用:has()选择器来检查目标元素是否具有所需的子元素。

Elements elements = document.select("a:has(.price.bld)");

也可以看看:

  • Jsoup 选择器食谱

    :has(seletor):查找包含与选择器匹配的元素的元素;例如div:has(p)

于 2013-01-16T20:45:54.060 回答