我正在尝试收集一些荷兰历史选举数据。下面你可以看到我一直在使用的代码。我仍然需要弄清楚如何迭代每个“Gemeente”的过程,但我现在的主要问题是我无法抓取包含在一个框中的选举结果(即,
results
对象不捕获该信息)。您对如何进行有什么建议吗?谢谢。
rD <- rsDriver(browser="firefox", port=4545L, verbose=F)
remDr <- rD[["client"]]
# Navigate to the URL
url <- 'https://www.verkiezingsuitslagen.nl/verkiezingen/detail/TK19250701/663214'
remDr$navigate(url)
dropdown1 <- remDr$findElement(using = 'id', value = "2")
dropdown1$clickElement()
dropdown2 <- remDr$findElement(using = 'id', value = "3")
dropdown2$clickElement()
option <- remDr$findElement(using = 'xpath', "/html/body/main/div/div/div[2]/div[1]/div/div[2]/div/select/option[2]")
option$clickElement()
results <- remDr$findElement(using = 'class name', value = "whitebox")
所有数据都存储在一系列 JSON 文件中,只需搜索浏览器开发人员工具的网络选项卡即可。
下面的代码将提取区域代码列表并检索结果文件。
library(dplyr)
library(jsonlite)
#the regional codes are stored here;
codes <- jsonlite::fromJSON("https://www.verkiezingsuitslagen.nl/verkiezingen/StemmingChartUitslagDataJson?stemmingId=10778")
codes <- codes$UitslagPerRegio
#election results are store in JSON format that this base URL
baseURL <- "https://www.verkiezingsuitslagen.nl/verkiezingen/detailJson/TK19250701/"
#for the town of Goor
regionCode <- codes[codes$RegioNaam=="Goor", ]$StemregioId
#results are store in a complex list here:
jsonlite::fromJSON(paste0(baseURL, regionCode))