0

我想在我的问题前先道歉 - 这将使它成为一个两部分的问题....双重道歉。我正在为 JSoup (再次)第一次道歉,因为我反复询问并且学习还不够好 - 所以任何人都可以建议阅读一些超出通常搜索的内容,以帮助我了解如何在每次尝试时破译 DOM?

如果您仍然愿意提供帮助,这一次,在返回的文档中,我有:

    <a href="/logitech-logitech-wireless-keyboard-k270-with-long-range-wireless-920-003051/info"><span id="priceProductQA1" class="productPrice">&#36;29.99</span></a>

我想获取href和价格“29.99”。我试过了

   doc = Jsoup.connect(srchStr).get();
    for (Element choices : doc.select("a:has(.productPrice)")){
      absHref = choices.attr("abs:href"); 
      String pricetxt = choices.text();

以及其他大约 10 种无济于事的方法。对我有更好的想法吗?

4

1 回答 1

0

这是另一个解决方案:

for( Element element : doc.select("span.productPrice") ) // Select all 'span' tags with a 'productPrice' class and iterate over them
{
    final String price = element.text(); // save the price (= text of element)
    final String link = element.parent().absUrl("href"); // Get the 'a' tag (= parent of 'span' tag) and its absolute (!) URL

    // ... 
}

解释:

  1. 选择span标签,因为您可以轻松决定它是否是您需要的(有课程,而a没有课程)
  2. 从 1 开始迭代每个元素。
  3. 获取元素的价格
  4. 选择标签的父span标签,因为它包含所需的 url
  5. 选择绝对网址;如果您想要相对的,请attr("href")改用

顺便提一句。如果您 100% 确定该网站上只有一个这样的元素,您可以将for -Loop替换为Element element = doc.select("span.productPrice").first();,然后是另外两行代码。

于 2013-01-28T16:12:59.250 回答