HTMLをいじる
テーブル形式でない
- Rでウェブスクレイピングしてみたを参考に進める
library(XML) library(stringr) read<-htmlParse("http://*.jp") #更新日情報の取得 ##dl/ddに含まれる文字列のリストを作成 list<-getNodeSet(read, "//dl/dd") #title<-getNodeSet(read,"//div/a/h3") ##更新日時のみを取得する for( i in 1:length(list) ){ ##ddタグを外し文字列のみを取り出し list[[i]]<-xmlValue(list[[i]],"dd") ##文字列内に含まれる空白を全て削除 list[[i]]<-gsub(" ","",list[[i]],fixed=TRUE) ##文字列の中で数値部分のみを取り出す list[[i]]<-str_match_all(list[[i]], "[0-9]+") #マッチングは"これでも"大丈夫 list[[i]]<-list[[i]][[1]] }
classなどから情報の検索を行う
xpathSApply(read,"//div[@class='object boxHover']//p[@class='heading object-title']//a//text()")
テーブル形式
readHTMLTable("http://...",encoding)で読み込み文字コードの変更が可能。
有用情報
データが多すぎて把握できない時
sink("data.txt") data #適当な変数 sink()
とすることでdata.txtファイルに出力内容を書き出すことが可能。
XML -> String
xmlValue(xmldata)
ミニ情報
- data.frame(data,stringsAsFactors=F)
参考資料
- Rでウェブスクレイピングしてみた
- Rにおける文字列内の空白削除
- stringr — Rの文字列をまともな方法で処理する
- RPubs - stringrの使用例
- ファイルへのデータ出力
- R言語のデータの入出力と編集 - sink()
- r - Parsing HTML elements by id and class with XML package - Stack Overflow - classなどを指定して検索を行う場合に
- R による XML の CSV 化 - なんとなくな Developer のメモ - XML-Stringの変換にxmlValue()