2016-05-23 14 views
1

Следующая связь содержит результаты марафона Парижа: http://www.schneiderelectricparismarathon.com/us/the-race/results/results-marathon. Я хочу очистить эти результаты, но информация лежит внутри рамки. Я знаю основы соскабливания с Rvest и Rselenium, но я не знаю, как получить данные в таком кадре. Чтобы получить представление об этом, одна из вещей, которую я пробовал:Как я могу скопировать данные с веб-сайта в рамке с помощью 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

Результаты загружаются 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, вам нужно понять немного больше веб-сайта, и каждый сайт имеет свою структуру. Для этого, вот как я сделал:

  1. Как вы видите, в исходном коде вы не видите никаких результатов, потому что они находятся в IFRAME, и при проверке кода, вы можете увидеть после того, как " РЕЗУЛЬТАТЫ 2016 EDITION ":

    класс =" IFrame-XDM Iframe-resultats "данных HREF =" http://www.aso.fr/massevents/resultats/index.php?langue=us & курс = mar16 & версия = 3"

  2. Теперь вы можете использовать непосредственно этот адрес: 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. И если вы хотите вторую страницу и т. Д., Вы можете щелкнуть по номеру страницы, а затем использовать инструмент разработчика, чтобы узнать, что произойдет!

+0

Спасибо, это решает мою проблему! Для будущих проблем вы можете рассказать мне, как вам удалось получить этот URL? Я не мог найти его в исходном коде. – Merijn

+0

Я отредактировал свой ответ, надеюсь, что поможет –