由于“金额”类用于“我们还推荐”部分中的商品价格,所有价格而不仅仅是主要商品价格。如何让它在第一个之后停止寻找更多价格?这是我的代码:
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
public class BestBuy {
//retrieves item name and price from Best Buy
public static void main(String[] args) throws Exception {
String url = "http://www.bestbuy.ca/en-CA/product/samsung-samsung-galaxy-tab-3- 8-0-16gb-android-4-2-tablet-with-exynos-4212-processor-white-sm-t310/10254746.aspx?path=8654a6d491c7d5a9465456671fa126e4en02";
Document document = Jsoup.connect(url).get();
String amount = document.select(".amount").text();
System.out.println("Price: " + amount);
String name = document.select(".product-title").text();
System.out.println("Item Name: " + name);
}
}
谢谢。
答案 0 :(得分:1)
如果您确定所需Element
是首选的Elements
,则可以first()
选择它。
尝试
String url = "http://www.bestbuy.ca/en-CA/product/samsung-samsung-galaxy-tab-3-8-0-16gb-android-4-2-tablet-with-exynos-4212-processor-white-sm-t310/10254746.aspx?path=8654a6d491c7d5a9465456671fa126e4en02";
Document document = Jsoup.connect(url).get();
String amount = document.select(".amount").first().text();
System.out.println("Price: " + amount);
String name = document.select(".product-title").first().text();
System.out.println("Item Name: " + name);
Ouptut:
Price: $229.99
Item Name: Samsung GALAXY Tab 3 8.0 16GB Android 4.2 Tablet with Exynos 4212 Processor - White
答案 1 :(得分:0)
我没有使用过jsoup,但是从API Reference开始,Selector
类似乎允许你使用CSS选择器,例如:eq
。请参阅example here:
td:eq(0)找到每行的第一个单元格
您应该可以使用以下内容:
String amount = document.select("span.amount:eq(0)").text();
或者,并且可能更好,select
方法会返回Elements
implements List
,因此您可以使用
String amount = document.select(".amount)").get(0).text();