在白框中抓取文本

问题描述 投票:0回答:1

我正在尝试收集一些荷兰历史选举数据。下面你可以看到我一直在使用的代码。我仍然需要弄清楚如何迭代每个“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")
r selenium-webdriver web-scraping rselenium
1个回答
0
投票

所有数据都存储在一系列 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))
© www.soinside.com 2019 - 2024. All rights reserved.