2017-09-12 4 views
1

pageの異なるセクションで繰り返される特定のデータポイント(名前、アドレス、電話など)をスクラップする場合は、すべて同じスパンで開始しますID:ただし、正確には同じではありません。rvestを使用して同じ種類のデータポイントをスクラップする方法は異なる

docs-internal-guid-049ac94a-f34e-5729-b053-30567fdf050a 
docs-internal-guid-765e48e9-f34b-7c88-5d95-042a93fcfda3 

最適なアプローチは何ですか?各IDを見つけてコピーすることは実行可能ではありません。おかげ

答えて

1

編集: あなたはすべての星のレストラン取得するために、次のスクリプトを使用することができます。

library("rvest") 

url_base <- "http://www.straitstimes.com/lifestyle/food/full-list-of-michelin-starred-restaurants-for-2017" 
data <- read_html(url_base) %>% 
    html_nodes("h3") %>% 
    html_text() 

これはまた、あなたのヘッダーに( "ONEミシュランの星" を与えると、 "TWO MICHELIN STARS"、「THREE MICHELIN STARS ")、これは役に立つかもしれません。

スクリプトの背景: 幸いにも、すべての関連情報のみがh3セレクタ内にあります。スクリプトは出力としてcharベクトルを与えます。もちろん、あなたはこれをさらに詳しく説明できます。 %>%as.data.frame()またはデータを保存/処理したい場合。

-------------------

おそらくその特定のページのURLを提供するでしょうか?私にとっては、正しいCSSセレクター(nth-child(x))をループ内で見つける必要があるように思えます。

+0

確かに、追加されたページ。ありがとう! – santoku

+1

私はちょっと急いでいますが、始めにh3:nth-​​child(7)をループしてみてください。 ライブラリ( "rvest") url_test < - "http://www.straitstimes .com /生活習慣/食べ物/ミシェリン星座レストラン2017年 " テスト< - read_html(url_test) データ<- test %>% html_nodes("奇数> h3:nth-​​child(7) )> span:nth-​​child(1)> span:nth-​​child(1) ")%>% html_text() – TomS

+0

ありがとうございました!これはすでに大きな前進です。私はCSSとnth_childのしくみについてもっと詳しく読むまで、nth-child(7)をループすることによって何を意味するのか分かりますか?7を他の数字に置き換えますか? – santoku

関連する問題