Парсинг веб-страницы

avatar
Gilbert Queiroz
7 апреля 2018 в 22:31
63
0
1

Я пытаюсь очистить следующую веб-страницу: http://www.qedu.org.br/escola/112633-militar-de-salvador/enem?edition=2009. Поискав в Интернете, я нашел следующий скрипт:

fetch_attendance <- function (year) {
url <- paste0 ("http://www.qedu.org.br/escola/112633-colegio-militar-de-   salvador/enem?edition=", year)
date <- url%>%
httr :: GET ()%>%
httr :: content ('text', encoding = 'utf-8')%>%
xml2 :: read_html ()%>%
rvest :: html_nodes (xpath = '// div [@ class = "span4 score-ct"] / p [1]')%>%
html_text ()%>%
gsub ("^ \\ s + | \\ s + $ | score", "",.)
date
}

library (plyr)

res <- ldply (2009: 2016, fetch_attendance, .progress = "text")

Однако результат выглядит следующим образом:

> res <- ldply (2009: 2016, fetch_attendance, .progress = "text")
=========================================== ===================== | 100%
> res
V1 V2 V3 V4 V5 V6
1 97% 635pts 605pts 595pts 659pts 735pts
2 97% 635pts 605pts 595pts 659pts 735pts
3 97% 635pts 605pts 595pts 659pts 735pts
4 97% 635pts 605pts 595pts 659pts 735pts
5 97% 635pts 605pts 595pts 659pts 735pts
6 97% 635pts 605pts 595pts 659pts 735pts
7 97% 635pts 605pts 595pts 659pts 735pts
8 97% 635pts 605pts 595pts 659pts 735pts

То есть он возвращает только результаты за 2009 год. Кто-нибудь может мне помочь? Я также хотел бы получить значения за период с 2010 по 2016 год.

Источник
DJack
8 апреля 2018 в 07:35
1

Я думаю, что вы не можете, так как веб-сайт требует аутентификации для доступа к другим страницам (вероятно, чтобы избежать очистки веб-страниц, что, кстати, в большинстве случаев является незаконным). К вашему сведению, я думаю, что вы получите результат за 2016 год (страница по умолчанию), а не за 2009 год.

Ответы (0)