2017-08-04 180 views
-1

我發現了由另一個用戶編輯的BalusC的一些代碼:Pisek,並想知道如何從另一個網站讀取數據。使用Jsoup從網站讀取數據

我明白如何找到新的類名來讀取數據的不同部分,但我不知道如何讀取產品的數量。

這裏是我到目前爲止的代碼:

package internalAssessment; 

import java.io.IOException; 
import org.jsoup.Jsoup; 
import org.jsoup.nodes.Document; 
import org.jsoup.nodes.Element; 
import org.jsoup.select.Elements; 

public class practiceArea { 

public static void main(String[] args) throws Exception { 

     String url = "https://www.tesco.com/groceries/product/details/?id=265485175"; 
     Document document = Jsoup.connect(url).get(); 

     String price = document.select(".linePrice").text(); 
     System.out.println("Price: " + price); 

     String quantity = document.select("").text(); 
     System.out.println("Quantity: " + quantity); 

    } 
} 
+2

數量將永遠是我假設的數量,因爲這將是一個新的電話到網頁 – azro

+0

是的,因爲@azro表示數量可能總是會是1.一般來說,因爲在這種情況下id(數量-265485175-1)是動態的,您應該能夠從您已知的其他字段(例如 - product id - 265485175)派生id,或者您應該從靜態元素導航到所需的元素。例子 - document.select('。addToBasket')。child(2) - 會給你數量元素。 – Sashi

+0

對不起,我想我解釋我的問題是錯誤的,閱讀產品的數量,例如楓糖漿的情況:180ml –

回答

1

你的方式,價格是使用class

String price = document.select(".linePrice").text(); 

你也可以用它class(或通過其id獲得量):

document.select(".quantity").attr("value");   // by class 
document.select("#qty-265485175-1").attr("value"); // by id 

不同的是得到的數字,這裏是一個value屬性,這樣你會使用:.attr("value");


正如我在評論說:這將啓動一個NEX連接到網站,所以有原因,你會得到的值不會1

+0

對不起,我想我解釋了我的問題是錯誤的,閱讀產品的數量,楓糖漿:180ml –