Контент загружается динамически.Вы можете увидеть страницу, выполняющую поиск, а затем возвращающую набор результатов.Вам нужно имитировать фактический поисковый запрос, который вы можете найти на вкладке сети.Возвращенные результаты в формате JSON.Интересующие данные находятся в пределах r$Rows
, и вы создаете URL путем объединения частей:
paste0("https://www.bcb.gov.br/estabilidadefinanceira/exibenormativo?tipo=", item$TipodoNormativoOWSCHCS,'&numero=',as.integer(item$NumeroOWSNMBR))
Вы можете использовать paste0
и map_df
для обработки этой реконструкции URL в цикле по возвращенному объекту jsonот r$Rows
.
Вы можете увидеть javascript, обрабатывающий этот процесс, в строке 6816 файла js https://www.bcb.gov.br/BcbModule.cdb75dd11ebbc7b56192.js
, найденного на вкладке источников.
Обратите внимание, что js использует уже установленную переменную, найденную в строке 5609
R:
library(jsonlite)
library(purrr)
r = jsonlite::read_json('https://www.bcb.gov.br/api/search/app/normativos/buscanormativos?querytext=ContentType:normativo AND contentSource:normativos AND cessão&rowlimit=15&startrow=0&sortlist=Data1OWSDATE:descending&refinementfilters=Data:range(datetime(2018-09-17),datetime(2019-09-20T23:59:59))')
df <- map_df(r$Rows, function(item) {
data.frame(title = item$title,
url = paste0("https://www.bcb.gov.br/estabilidadefinanceira/exibenormativo?tipo=", item$TipodoNormativoOWSCHCS,'&numero=',as.integer(item$NumeroOWSNMBR)),
stringsAsFactors=FALSE)
})
head(df)