2016-05-23 10 views
1

次のリンクは、パリのマラソンの結果を掲載しています。http://www.schneiderelectricparismarathon.com/us/the-race/results/results-marathon これらの結果をスクラップしたいが、情報はフレーム内にある。私はRvestとRseleniumで削り取る基本を知っていますが、そのようなフレーム内でデータを取り出す方法はまったく分かりません。アイデアを得るには、私が試したことの1つでした:Rを使用してフレーム内のウェブサイトからデータをスクラップする方法はありますか?

url = "http://www.schneiderelectricparismarathon.com/us/the-race/results/results-marathon" 
site = read_html(url) 
ParisResults = site %>% html_node("iframe") %>% html_table() 
ParisResults = as.data.frame(ParisResults) 

この問題を解決する上での助けがあれば、大歓迎です!

答えて

1

結果は以下のURLからAJAXによってロードされます。

url="http://www.aso.fr/massevents/resultats/ajax.php?v=1460995792&course=mar16&langue=us&version=3&action=search" 
    table <- url %>% 
    read_html(encoding="UTF-8") %>% 
    html_nodes(xpath='//table[@class="footable"]') %>% 
    html_table() 

PS:私は正確に何であるかのAjaxを知らない、と私はちょうどrvest

EDITの基本を知っている:するために、コメントに質問に答えてください:私はウェブスクレイピングで多くの経験がありません。 rvestやxmlで非常に基本的なテクニックを使用する場合は、Webサイトを少しだけ理解する必要があり、すべてのサイトには独自の構造があります。この1のために、ここで私がやった方法です。見ての通り、彼らはiframe内にあり、かつコードを検査するとき、あなたは後に見ることができるので

  1. 、ソースコード中であなたがどんな結果が表示されません」 「2016年版の結果」:

    class = "iframe-xdm iframe-resultats" data-href = "http://www.aso.fr/massevents/resultats/index.php?langue=us & course = mar16 = 3" &バージョンは

  2. 今、あなたは直接このURLを使用することができます。http://www.aso.fr/massevents/resultats/index.php?langue=us&course=mar16&version=2

  3. でも結果は得られます。その後、Chromeデベロッパーツール>ネットワーク> XHRを使用できます。ページを更新すると、このURLからデータが読み込まれていることがわかります(男性カテゴリを選択した場合)。http://www.aso.fr/massevents/resultats/ajax.php?course=mar16&langue=us&version=2&action=search&fields%5Bsex%5D=F&limiter=&order=

  4. 結果が表示されます。

  5. 2番目のページなどが必要な場合は、ページ番号をクリックして、開発者ツールを使用して何が起こるかを確認してください。

+0

ありがとう、これは私の問題を解決します!将来の問題については、このURLをどのように入手できたか教えてください。私はソースコードでそれを見つけることができませんでした。 – Merijn

+0

私は自分の答えを編集しました。 –

関連する問題