【问题标题】:Jsoup to get the price on this websiteJsoup 获取本网站的价格
【发布时间】:2026-02-17 14:25:01
【问题描述】:

我想从这个page source得到价格13.490.000

我试过这段代码,但它没有打印出任何东西。

Document doc = Jsoup.connect("http://www.thegioididong.com/dtdd/sony-xperia-z1").get();

Elements spans = doc.select("span[itemprop]");

for (Element span : spans) {
      System.out.println(span.text());
    }

希望有人可以提供帮助!

【问题讨论】:

    标签: jsoup web-crawler


    【解决方案1】:

    我查看了System.out.println(doc.html()); 的输出,价格在contentInfoPriceOrder 类的元素中指定,因此您可以这样打印:

    Elements spans = doc.select(".contentInfoPriceOrder");
    for (Element span : spans) {
        System.out.println(span.child(0).text());
    }
    

    【讨论】:

    • 非常感谢!!!,顺便说一句,我是新手,你能推荐一些在线教程来学习使用 Jsoup 吗?
    • 我从来没有读过Jsoup有什么特别的东西,只是用过几次。
    • 如果您还没有看过它,我建议您将jsoup.org/cookbook 作为一个很好的资源。它提供了 jsoup 及其功能的基本概述。
    【解决方案2】:

    在我看来,您遇到的一个问题是您试图选择所有具有itemprop 属性的<span> 元素。尝试仅选择属性为itemprop 且值等于"price"<span> 元素。

    Document doc = Jsoup.connect("http://www.thegioididong.com/dtdd/sony-xperia-z1").get();
    Element span = doc.select("span[itemprop=\"price\"]").first();
    System.out.println(span.text());
    

    我输入了.first(),因为我认为jsoup 可能需要您声明您只选择一个元素。不过,您可能不需要这个。

    【讨论】: