2014-01-20 33 views
0

由於「金額」類用於「我們也推薦」部分中的物品價格,因此它是所有價格而不是主要物品價格。如何讓它在第一個價格之後停止尋找更多價格?這裏是我的代碼:我正嘗試從Best Buy中檢索產品名稱和價格,如何在第一個價格後停止產品名稱和價格?

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); 

    } 

} 

謝謝。

回答

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 
0

我沒有用jsoup,但是從他們的API Reference它看起來像Selector類允許你使用CSS選擇器如:eq。見example here

TD:EQ(0)發現每行

的第一個單元格,您應該可以使用以下命令:

String amount = document.select("span.amount:eq(0)").text(); 

或者,也可能更好,select方法返回Elementsimplements List,所以你可以使用

String amount = document.select(".amount)").get(0).text(); 
相關問題