2017-08-04 152 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 –