Html 如何从该网站获取href attr?
我试图解析这个的html,当我从假定的链接中获得html_节点时,它会得到所有节点的响应“”。我做错了什么Html 如何从该网站获取href attr?,html,r,web-scraping,href,Html,R,Web Scraping,Href,我试图解析这个的html,当我从假定的链接中获得html_节点时,它会得到所有节点的响应“”。我做错了什么 texto_01 <- read_html(URL) titulos_noticias <- texto_01 %>% html_nodes("p") %>% html_nodes("div") %>% html_nodes("ol") %>% html_nodes("li") %>% html_nodes("a") titulos_notici
texto_01 <- read_html(URL)
titulos_noticias <- texto_01 %>% html_nodes("p") %>% html_nodes("div") %>% html_nodes("ol") %>% html_nodes("li") %>% html_nodes("a")
titulos_noticias_texto <- html_attr(titulos_noticias,"href")
titulos_noticias_texto
texto_01%html_节点(“div”)%%>%html_节点(“ol”)%%>%html_节点(“li”)%%>%html_节点(“a”)
titulos_noticias_texto内容是动态加载的。您可以看到该页面执行搜索,然后返回结果集。您需要模拟可以在“网络”选项卡中找到的实际搜索请求。返回的结果是json格式的。感兴趣的数据位于r$Rows
中,您可以通过连接以下部分来构造url:
paste0("https://www.bcb.gov.br/estabilidadefinanceira/exibenormativo?tipo=", item$TipodoNormativoOWSCHCS,'&numero=',as.integer(item$NumeroOWSNMBR))
您可以使用paste0
和map_df
在从r$Rows
返回的json对象上循环处理此url重建
您可以在js文件6816行看到处理此过程的javascripthttps://www.bcb.gov.br/BcbModule.cdb75dd11ebbc7b56192.js
可在“源”选项卡中找到
请注意,js使用的是在第5609行找到的已设置变量
R:
library(jsonlite)
图书馆(purrr)
r=jsonlite::read_json('https://www.bcb.gov.br/api/search/app/normativos/buscanormativos?querytext=ContentType:normativo 和内容来源:normatios和cessão&rowlimit=15&startrow=0&sortlist=Data1OWSDATE:descending&refinementfilters=Data:range(日期时间(2018-09-17)、日期时间(2019-09-20T23:59:59)))
df您需要为任何人提供URL
,以便能够调试您的问题。布赖恩,你好!URL位于“网站”href中。不管怎样。最好的。你好,QHarr。又是我的朋友。它在这里工作!最好的,菲利佩
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)