我一直在为我大学的政治学系进行网络抓取项目。
丹麦议会对他们的民主进程非常透明,他们将所有立法文件上传到他们的网站上。从2008年开始,我一直在爬网所有页面。现在,我正在将信息解析为一个数据框,并且遇到了一个目前无法解决的问题。
如果我们查看DOM,我们可以看到它们命名了大多数对象div.tingdok-normal
。对象数在16-19之间变化。为了正确解析我的数据框的信息,我尝试根据模式grep出必要的部分。但是,问题是有时我的模式匹配不止一次,而且我不知道如何告诉R我只想要第一个匹配。
为了举例,我包含一些代码:
final.url <- "https://www.ft.dk/samling/20161/lovforslag/l154/index.htm"
to.save <- getURL(final.url)
p <- read_html(to.save)
normal <- p %>% html_nodes("div.tingdok-normal > span") %>% html_text(trim =TRUE)
tomatch <- c("Forkastet regeringsforslag", "Forkastet privat forslag", "Vedtaget regeringsforslag", "Vedtaget privat forslag")
type <- unique (grep(paste(tomatch, collapse="|"), results, value = TRUE))
也许您可以帮助我