JavaとJsoupのまったく新しいものです。私はウェブを掻き集め、Javaで株式市場のデータを提供する簡単なプログラムを作成しようとしています。私はダウ・ジョーンズの株式から始まり、52週間のレンジ・データを印刷したいと考えています。それはhttp://finance.yahoo.com/quote/AAPL?ltr=1に行き、下の左の表(前の終わりで始まる)を見て、5番目の索引に行き、そこからテキスト値を取得します。私はエラーを取得する:スレッド内Java Jsoupウェブサイトのデータを盗む問題
例外 "メイン" org.jsoup.select.Selector $ SelectorParseException:クエリを解析できませんでした 'table.W(100%)':で予期しないトークン '(100%)'
どこかで、私はテーブルクラスが間違っていますか?このコードを動作させるにはどうすればよいですか?
私は延期(AAPL)株式リンゴで開始し、Jsoupで、この思い付いた:
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
public class Scraper {
public static void main(String[] args) throws Exception {
final Document doc = Jsoup.connect("http://finance.yahoo.com/quote/AAPL?ltr=1").get();
Elements table = doc.select("table.W(100%)");
Element row = table.select("tr").get(5);
final String number = row.select("td").text();
System.out.println(number);
}
}
ありがとうございました。今、Element row = table.select( "tr")を実行すると、Nullpointerexceptionでいくつかの問題が発生しています。それはすべての行を正しく取得する必要がありますか? – Joeysk
はい、すべてのテーブル行を取得する必要があります。ただし、要素ではなく要素が返されます。 APIへのリンクは、すべてのメソッドが何を返すかを調べるためのものです:https://jsoup.org/apidocs/ – Justin