java使用Jsoup从网页获取价格
我试图从网页上的产品中获取价格。 特别是在下面的html中。我不知道如何使用CSS,但到目前为止,这些都是我的尝试
<div class="pd-price grid-100">
<!-- Selling Price -->
<div class="met-product-price v-spacing-small" data-met-type="regular">
<span class="primary-font jumbo strong art-pd-price">
<sup class="dollar-symbol" itemprop="PriceCurrency" content="USD">$</sup>
399.00</span>
<span itemprop="price" content="399.00"></span>
</div>
</div>
这显然存在于网页中,但下面是我试图运行的java代码
String url ="https://www.lowes.com/pd/GE-700-sq-ft-Window-Air-Conditioner-115-Volt-14000-BTU-ENERGY-STAR/1000380463";
Document document = Jsoup.connect(url).timeout(0).get();
String price = document.select("div.pd-price").text();
String title = document.title(); //Get title
System.out.println(" Title: " + title); //Print title.
System.out.println(price);
# 1 楼答案
首先,你应该熟悉CSS选择器
W3School 有一些资源可以让你开始
在本例中,您需要的东西位于
div
和pd-price
类中 所以div.pd-price
已经是正确的了你需要先得到元素
然后用另一个选择器获取子div
然后把跨度元素放进去
此时,您可以获取
<sup>
元素,但在本例中,您可以调用text()
方法来获取文本这会打印出来
编辑: 在其他答案中看到评论后
您可以从浏览器获取cookie,然后从Jsoup发送cookie,以绕过zipcode要求
# 2 楼答案
如果你也需要货币:
我不负责这些,但应该管用。 有关更多详细信息,请参见JSoup API reference