html_tableで何ができるのか
html_tableを使って、HTMLの表を解析し、Rにデータフレームを出力することができます。
練習
ここでは、webサイトにあるHTMLで作られた表からデータを取り出すとして、練習してみます。
下の身長(Height)、体重(Weght)のHTMLの表データを取り出してみましょう。
ID | Height | Weight |
1 | 150 | 45 |
2 | 160 | 50 |
3 | 155 | 70 |
4 | 170 | 75 |
5 | 150 | 50 |
事前準備(インストール)
install.package("tidyverse") #tidyverseをインスト―ル
library(rvest) #rvestを呼び出す
tidyverse:便利なパッケージの集合体。表作成、データ抽出、データ整理などの操作を直感的に行うことができる。
rvest:webページからデータを取り出す(スクレイピング)するためのパッケージです。
install.package():パッケージをインストールするための関数。install.package(“パッケージ名”)。パソコンがインターネットにつながっていないと使用できないため注意。
library():Rのパッケージはインストールしただけでは使うことができないので、library(パッケージ名)で呼び出す必要がある。
では、早速。
以下のコードをSourceペインに貼り付けて、実行します。
demo_url <- "https://rstudy.info/html_table/" table <- read_html(demo_url) %>%
html_nodes(xpath="//*[@id='post-73']/div[2]/figure/table") %>%
html_table()
table
すると、表のデータが取り出され、Consoleペインにそのデータが表示されます。
table <- read_html(demo_url) %>%
html_nodes(xpath="//*[@id='post-73']/div[2]/figure/table") %>%
html_table()
table
[[1]]
A tibble: 6 x 3
X1 X2 X3
1 ID Height Weight
2 1 150 45
3 2 160 50
4 3 155 70
5 4 170 75
6 5 150 50
今回の例は、6×3の小さなデータフレームでしたが、
大きな表のデータを取り出したいときに、この作業が大変便利であることがわかります。