我想列出此处列出的每个选举日期:https://voterportal.sos.la.gov/static/ 这样我就可以前往每个相应的选举站点并下载并编译名为“Excel - Complete Results”的电子表格
通常我会通过使用 Rvest 来获取链接网站上列出的每个日期,然后映射日期以到达每个选举网站(只是选举日期附加到父网站 url,如:“https:// voterportal.sos.la.gov/static/2022-04-30"),然后阅读选举网站中链接的 excel,但我遇到了以前从未遇到过的
html_elements
问题:
我试着用
html_elements
拉日期:
la_elections_url <- "https://voterportal.sos.la.gov/static/"
la_elections_text <- read_html(la_elections_url)
la_elections_text %>% html_element("a")
我认为我可以过滤到
href
属性,例如:
html_attr(html_nodes(la_elections_text, "a"), "href") %>% as.list()
要获取选举日期列表,但我收到警告:
la_elections_text %>% html_element("a")
{xml_missing}
<NA>
本网站使用XHR加载数据,这使得使用基于DOM的
rvest
有点棘手。幸运的是,您可以使用 DevTools 抓取 URL 来自己获取所有数据:
使用
httr
,这变得非常简单:
library(httr)
library(tidyverse)
res <- httr::GET('https://voterportal.sos.la.gov/ElectionResults/ElectionResults/Data?blob=ElectionDates.htm')
res_list <- httr::content(res)
res_list$Dates$Date %>%
purrr::map( ~ {
.x$ElectionDate
})
哪个给你:
[[1]]
[1] "04/29/2023"
[[2]]
[1] "03/25/2023"
[[3]]
[1] "02/18/2023"
[[4]]
[1] "01/14/2023"
[[5]]
[1] "12/10/2022"
.....