html_tableでHTMLの表を解析してデータフレームを出力する

html_tableで何ができるのか

html_tableを使って、HTMLの表を解析し、Rにデータフレームを出力することができます。

練習

ここでは、webサイトにあるHTMLで作られた表からデータを取り出すとして、練習してみます。

下の身長(Height)、体重(Weght)のHTMLの表データを取り出してみましょう。

IDHeightWeight
115045
216050
315570
417075
515050

事前準備(インストール)

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の小さなデータフレームでしたが、
大きな表のデータを取り出したいときに、この作業が大変便利であることがわかります。

コメントを残す

メールアドレスが公開されることはありません。