HTMLをいじる

テーブル形式でない

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()")

テーブル形式

abrahamcow.hatenablog.com

readHTMLTable("http://...",encoding)で読み込み文字コードの変更が可能。

有用情報

データが多すぎて把握できない時

sink("data.txt")
data #適当な変数
sink()

とすることでdata.txtファイルに出力内容を書き出すことが可能。

XML -> String

xmlValue(xmldata)

ミニ情報

  • data.frame(data,stringsAsFactors=F)

参考資料