2016-04-05 6 views
0

もっと一般的になるように私の質問を編集しました: "rを使用してテーブルをスクラップする方法はありますか?テーブルを掻き集めることは必ずしも容易ではありません

まず、rvestのような関数がどのような形式で抽出できるのかをどうすればわかりますか?

次に、使用可能なすべてのスクレイピング機能を試してみて失敗したとします。どうすればいいですか?自分で解析関数を書く?それを行う簡単な方法はありますか?

このインスタンスではreadHTMLTableが機能しない場合、巨大な文字列操作でhtmlコードを解析する以外に、私が追求すべき他のオプションは何ですか?

+0

FMを読む:ヘルプの例は、まずドキュメントを読み込みます。 'doc = htmlParse(url);tableNodes = getNodeSet(doc、 "// table"); tb = readHTMLTable(tableNodes [[2]]) ' –

+1

さらに、HTML表のようには見えません。テーブルを見ているかもしれませんが、実際は別の構造を持っています。 –

+0

XML指向の機能で読書を試みてください。 –

答えて

0

私はこれに対する一般的な答えは、 "あらゆる言語での擦過傷はしばしば首に痛みがある"と思います。これは、人々がWeb上で、機械が解析するのが難しいランダムな、愚かな形式のものを置くためです。

私は膨大な量の掻き取りをしておらず、「ページのソースビューでは試行錯誤してみてください」よりも良い答えはありません。

テーブルがひどく構造化されているようです。あなたは<tr>(テーブル行)を抽出しようとすると、迷惑メールを取得...

Weblink <- "http://hmofs.northwestern.edu/hc/crystals.php" 
library(rvest) 
rr <- read_html(Weblink) 
tab2 <- html_nodes(rr,"table")[4]  ## get 4th table 
vals <- html_text(html_nodes(tab2,"td")) ## get *all* elements in 4th table 

は今だけの数値を取る - 表の第7欄は、情報をダウンロードし、このよう

vals <- suppressWarnings(na.omit(as.numeric(vals))) 
matrix(vals,byrow=TRUE,ncol=6) 
を破棄します
関連する問題