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

これはウェブページへの新しい呼び出しであるため、数量は常に1になります。 – azro

+0

はい、@azroは量が常に1になると言います。一般的に、この場合のid(qty -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 –

関連する問題