2015年7月28日火曜日

(R言語)readHTMLTable関数でJ2の順位を音速で抜き出す。

 唐突ですが、早起きした朝に

「あ〜っ! サッカーJ2の順位表を音速で抜き出したいぃ〜!」

・・・って思いますよね。異論は認めません。
わたくし、不勉強なもので「Rubyでスクレイピングしようかなー」と思っていたのですが、R言語に「readHTMLTable」という便利な関数があることを知りました。
簡単なテーブルで作られた表なら一発で抜き出せるので、大変便利でございます。

手順


1.とりあえずJ2順位ページにアクセス。URLをエディタにコピペしておきましょう。

http://www.jleague.jp/standings/j2.html


2.下記ソースコードを実行。Rstudioとかでやった方が楽ですよ。

# XMLパッケージのインストール。HTMLからテーブルを抜き出す関数「readHTMLTable」を呼び出すために必要。
install.packages("XML")

# XMLパッケージの呼び出し。
require(XML)

# スクレイピングしたいURLを変数に格納。
URL = "http://www.jleague.jp/standings/j2.html"

# readHTMLTable関数でテーブルデータをスクレイピング。
# stringsAsFactorsオプションは、readHTMLTable関数はcharacter列をfactorで返すのでFALSEオプションをつけて変換されないようにします。
J2 <- readHTMLTable(URL, which = 1, header = TRUE, stringsAsFactors = FALSE)
# いちおう、内容チェック。
J2
# csvファイルに書き出す。
write.csv(J2,"J2.csv")


3.保存ファイルを開いて中身をチェック。


これだけです。同一ページに複数のテーブルがあってもオプションで選択可能なのでほんと便利。

0 件のコメント:

コメントを投稿