普段はPHPのPHP Simple HTML DOM Parserを利用しているが、
ログインの必要な画面遷移と組み合わせるのでJavaでスクレーピングを久々に実装してみた。
今回はJSoupというJavaのライブラリを利用した。CSSセレクターが使えるのでSimple HTML DOM Parserと同じような記述ができる。
下記のサンプルコードはSJISのファイルをパースするもの。目的の要素までCSSセレクターで取得した後は、elementsをループで回す。
import java.io.File; 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 JSoupSample { public static void main(String[] args) throws IOException { // TODO Auto-generated method stub File input = new File("c:/html.txt"); Document doc = Jsoup.parse(input, "Windows-31J", "http://example.com/"); Elements dateElements = doc.select("div.locator table tbody tr"); for (Element element : dateElements) { System.out.println(element.outerHtml()); } } }