2016-03-22 9 views
0

rvest Rパッケージを使用して以下のウェブページをスクラップしようとしています。 BBC Stock Market DataRBRパッケージを使用したBBC株式市場データR

私は、ヨーロッパ/アフリカのテーブルをデータフレームで取得することを検討しています。現時点では

私のコードは次のとおりです。

stockmarket <- "http://www.bbc.co.uk/news/business/market_data/stockmarket/default.stm" 
stockmarket_html <- read_html(stockmarket) 
stockmarket_perf <- html_nodes(stockmarket_html, xpath = '//*[@id="marketdata_v4"]/table/tbody/tr[1]/td/table[6]/tbody') 
stockmarket_table <- html_table(stockmarket_perf) 

が、それは動作しません。

  1. それは
  2. が何であるかを知らないに変換する方法を知ってはいけない:私はstockmarket_htmlドキュメントを調べるとき 具体的には、私がHTMLが、XMLポインタではないようですRオブジェクト

何か助けや指示をいただければ幸いです。

+1

あなたのコードは良いです、あなたのXPathは結果を返していません。 – cory

+0

興味深いのは、私がOperaのネイティブ "Inspect Element"機能から "Copy xpath"を使用したからです。それは間違っていますか? – stratar

答えて

1

html_nodesに渡すセレクタでは、必要なものが選択されていません。この特定のテーブルは、それ自身のクラスまたはIDを持たないため、この特定のケースは平均よりも困難です。それにもかかわらず、我々はmarketdata_v4div内のすべてのテーブルを探し、次にあなたが欲しいものです第九を、引き出し

library(rvest) 
stockmarket <- "http://www.bbc.co.uk/news/business/market_data/stockmarket/default.stm" 
stockmarket_html <- read_html(stockmarket) 
stockmarket_perf <- html_nodes(stockmarket_html, '#marketdata_v4 table') 
stockmarket_table <- html_table(stockmarket_perf[9], fill = TRUE) 

でそれをつかむことができます。

データは依然としてかなり乱雑であり、大幅なクリーニングが必要であることに注意してください。必要に応じて、同様のデータを得るための別の方法があります。 Yahoo Financeには非常に徹底的に構築されたAPIがありますので、必要なものが分かっていれば、直接から引き出すことができるパッケージが少なくとも2つあります。 quantmodはおそらく一見の価値がありますが、私はそれを特に指標を引くために使っていません。

関連する問題