a websiteからRを使用してデータを削り取ろうとしています。rvest
を使用して、an example scraping the IMDB page for the Lego Movieを模倣しようとしています。この例では、Selector Gadgetというツールを使用して、取得しようとしているデータに関連付けられているhtml_node
を簡単に識別できるようサポートしています。 rank
、blog_name
、facebook_fans
、twitter_followers
、alexa_rank
:Rとセレクタガジェットを使ったWebスクレイピング
は、私は次のスキーマ/列を持つデータフレームを構築する上で、最終的に興味があります。
以下のマイコード。レゴの例で使用されているhtmlタグを正しく識別するためにセレクタガジェットを使用することができました。しかし、レゴの例と同じプロセスと同じコード構造に従って、私はNAs(...using firstNAs introduced by coercion[1] NA
)を取得します。 、それは714試合をレポートするので、「Facebookのファン」欄のために働くようだhtml_node("html_node(".stats , .stats span"))
、しかし、唯一の1つの数が返される返します
data2_html = read_html("http://blog.feedspot.com/video_game_news/")
data2_html %>%
html_node(".stats") %>%
html_text() %>%
as.numeric()
私はまたして実験している:私のコードは以下の通りです。
714 matches for .//*[@class and contains(concat(' ', normalize-space(@class), ' '), ' stats ')] | .//*[@class and contains(concat(' ', normalize-space(@class), ' '), ' stats ')]/descendant-or-self::*/span: using first{xml_node}
<td>
[1] <span>997,669</span>
これは本当にクールに見えますが、私はあなたの結果を複製することができません。エラー: 'game_blogs <- h %>% html_node( 'table')%>%#囲みテーブルノードを選択 html_table()%>%#テーブルをdata.frameに変換 set_names(make.names) エラー:' x'と ' nmは同じ長さでなければならない ' – user2205916
Ah!申し訳ありませんが、それは関数をとることができる 'purrr :: set_names'の開発版を使用しています。 [Github](https://github.com/tidyverse/purrr/)からインストールするか、同じことを行う 'set_names(make.names(names(。))')だけを使用してください。 – alistaire