2017-12-11 7 views
0

本質的に、この特定のコインの価格を印刷しようとしています。ここに私のプログラムです。 Jsoup:メタタグからコンテンツの値を抽出するのに役立つ必要があります

package ZecPrice; 

import java.io.IOException; 
import java.io.InputStreamReader; 
import java.io.BufferedReader; 
import java.net.*; 
import org.jsoup.Jsoup; 
import org.jsoup.nodes.*; 

public class ZecPrice 
{ 

    public static void main(String[] args)throws IOException 
    { 
     URL url1 = new URL("https://www.cryptocompare.com/coins/zec/overview/USD"); 
     URLConnection Urlconn = url1.openConnection(); 
     Urlconn.addRequestProperty("User-Agent", "Chrome"); 
     InputStreamReader in = new InputStreamReader(Urlconn.getInputStream()); 
     BufferedReader buff = new BufferedReader(in); 

     String line = buff.readLine(); 
     while(line != null) 
     { 
      if(line.contains("<meta itemprop=\"price\"")) 
      { 
       Document doc = Jsoup.parse(line); 
       Element meta = doc.select("meta[itemprop=price]").first(); 
       String content = meta.attr("content"); 

       System.out.println(content); 

      } 
      line = buff.readLine(); 
     } 
    } 

} 

私は出力にコインの現在の価格をそれをしたいです。 私はプログラムを実行するとき、それは出力します:{{selectedCurrency.DATA.PRICE}}; js変数のようです。実際の価値を得る方法はありますか?

答えて

0

あなたはangularjsテンプレートを探していると、すべてのデータが含まれていません。データはajax経由でロードされています。ウェブサイトを公開しているエンドポイントあなたはJSONを使用してオフにはるかに良いと思います:

https://min-api.cryptocompare.com/data/histominute?aggregate=10&e=CCCAGG&extraParams=CryptoCompare&fsym=ZEC&limit=144&tryConversion=false&tsym=USD

*これはあなたの法的義務を認識しているウェブサイトの利用条件とそのあなたの責任に違反する可能性があります。

0

あなたは私のコードを試すことができます:

public static void main(String[] args)throws IOException 
{ 
    URL url1 = new URL("https://www.cryptocompare.com/coins/zec/overview/USD"); 
    URLConnection Urlconn = url1.openConnection(); 
    Urlconn.addRequestProperty("User-Agent", "Chrome"); 
    BufferedReader in = new BufferedReader(new InputStreamReader(
        url1.getInputStream())); 

    String inputLine; 
    StringBuffer response = new StringBuffer(); 
    while ((inputLine = in.readLine()) != null) { 
     response.append(inputLine); 
    } 
    in.close(); 
    String res = response.toString(); 
    if(line.contains("<meta itemprop=\"price\"")) { 
      Document doc = Jsoup.parse(line); 
      Element meta = doc.select("meta[itemprop=price]").first(); 
      String content = meta.attr("content"); 
      System.out.println(content); 
    } 
} 
+0

私はそれを試しましたが、今はNullPointerExceptionエラーが発生しました。また、in.readLine()で、メソッドが存在しないというエラーが発生したため、buff.readLine()を使用していたかどうかはわかりませんでした。 – Edgar153

+0

コードを編集しました。もう一度実行してください。 – huunhancit

関連する問題