次のようなテーブルからRにデータをインポートしたいと思います。
http://www.rout.gr/index.php?name=Rout&file=results&year=2011
以下のスレッドで提案されているようにXMLライブラリを使用してみましたが、何も取得できませんでした。
次のようなテーブルからRにデータをインポートしたいと思います。
http://www.rout.gr/index.php?name=Rout&file=results&year=2011
以下のスレッドで提案されているようにXMLライブラリを使用してみましたが、何も取得できませんでした。
そのサイトで起こっているいくつかのファンキーなことがあるようです。ユーザーエージェントを偽造しない限り、データは返されないようです。それでも、readHTMLTableはあまりうまく動作せず、全体を渡すとエラーが返されますdoc
。table_results_r_1
ソースを読んだ後、関連するテーブルにidがあり、それを分離して結果を作業に渡すことがわかります。
library(XML)
library(httr)
theurl <- "http://www.rout.gr/index.php?name=Rout&file=results&year=2011"
doc <- htmlParse(GET(theurl, user_agent("Mozilla")))
results <- xpathSApply(doc, "//*/table[@id='table_results_r_1']")
results <- readHTMLTable(results[[1]])
rm(doc)
次に、テーブルの列名を整理する必要があります。
私のコメントに加えて
theurl <- "http://www.rout.gr/index.php?name=Rout&file=results&year=2011"
doc <- htmlParse(GET(theurl, user_agent("Mozilla")))
removeNodes(getNodeSet(doc,"//*/comment()"))
dum.tables<-readHTMLTable(doc)
そのため、14番目のテーブルのヘッダー間のコメントが問題を引き起こしていました。すべてのhtmlコメントを削除すると、関数はページ上のすべてのテーブルで機能します。