Jsoupを使って株価をスクレイピングできるようになったのでメモ。
最終的には取得した値をまとめてメールで送れるようにする予定です。
Parser.java
package parser;
import java.io.IOException;
import java.util.ArrayList;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
public class Parser {
// コンストラクタでURLを指定するので、private
@SuppressWarnings("unused")
private Parser() {
};
protected Document document = null;
public Parser(String url) throws IOException {
this.document = Jsoup.connect(url).get();
}
public ArrayList<String> getElementsByClass(String className) {
ArrayList<String> list = new ArrayList<>();
Elements elements = document.getElementsByClass(className);
for (Element element : elements) {
list.add(element.text());
}
return list;
}
}
Main.java
package main;
import java.io.IOException;
import parser.Parser;
public class Main {
public static void main(String[] args) throws IOException {
// 今回はトヨタの株価を取得してみる。
String kabuka = new Parser("http://stocks.finance.yahoo.co.jp/stocks/detail/?code=7203.T").getElementsByClass("stoksPrice").get(1);
System.out.println(kabuka);
}
}