У вас есть 1838 страниц, чтобы получить. Пример с 10 первыми страницами:
library(xml2)
library(RCurl)
library(dplyr)
library(rvest)
i=1
table = list()
for (i in 1:10) {
data=getURL(paste0("https://www.eurofound.europa.eu/observatories/emcc/erm/factsheets","?page=",i))
page <- read_html(data)
table1 <- page %>%
html_nodes(xpath = "(//table)[2]") %>%
html_table(header=T)
i=i+1
table1[[1]][[7]]=as.integer(gsub(",", "",table1[[1]][[7]]))
table=bind_rows(table, table1)
print(i)}
table$`Announcement date`=as.Date(table$`Announcement date`,format ="%d/%m/%Y")
Примечания:
i=1
: i - переменная для приращения. table = list()
: создать пустой список (обязательно для первого шага "bind_rows"). 1:10
: с первой по десятую страницу (должно быть 1: 1838). paste0
: генерировать каждый раз новый URL. //table[2]
: таблица интересов. as.integer(gsub)
: обязательно для шага "bind_rows". Столбцы каждого списка для привязки должны быть одного типа. Столбец 7 может быть напечатан как символ из-за ,
. print(i)
: быть информированным о прогрессе. as.Date
: последний шаг для преобразования первого столбца в правильный тип.
Другие варианты: вы можете загрузить все страницы за пределами l oop в объекте, а затем обработать его. Может быть, загрузка всех страниц с помощью DTA, а затем их разбор в R будет быстрее.
Вывод: