【发布时间】:2022-01-21 19:50:32
【问题描述】:
以下代码是在我之前在同一平台上的一个问题中编写的。我必须下载 2020 年的数据,但是一旦在给定 Web 链接的右侧列上单击 2020 年,URL 就不会改变。该代码在 Firefox 上打开 2020 页面,但未在系统中下载所需文件(2020 文件)。它正在下载我不需要的 2021 文件。我无法弄清楚这个问题。 我正在处理的 URL 是:https://www.rbi.org.in/scripts/AnnualPublications.aspx?head=Handbook%20of%20Statistics%20on%20Indian%20Economy 代码是:
library(tidyverse)
library(stringr)
library(purrr)
library(rvest)
library(RSelenium)
rD <- rsDriver(browser="firefox", port=4567L, verbose=F)
remDr <- rD[["client"]]
remDr$navigate("https://www.rbi.org.in/scripts/AnnualPublications.aspx?head=Handbook+of+Statistics+on+Indian+Economy")
elem<- remDr$findElement(using = "link text", "2020")
elem$clickElement()
page <- remDr$getPageSource()[[1]]
read_html(page) -> html
html %>%
html_nodes("a") %>%
html_attr("href") %>%
str_subset("\\.PDF") -> urls
urls %>% str_split(.,'/') %>% unlist() %>% str_subset("\\.PDF") -> filenames
for(u in 1:length(urls))
{
cat(paste('downloading: ', u, ' of ', length(urls)))
download.file(urls[u], filenames[u], mode='wb')
}
system("taskkill /im java.exe /f", intern=FALSE, ignore.stdout=FALSE)
【问题讨论】:
-
您的代码对我来说运行良好。能够下载 chrome 中的文件。
-
只是为了确认您能够下载 2020 年的文件?因为在我的它显示正在下载,但随后系统超时并且没有下载任何内容
-
是的,我能够下载 2020 年的文件。打开pdf并交叉检查。
-
但是为什么在我的系统中没有发生呢?我想不通?你有什么想法吗?由于 R 版本或其他原因而发生?只是为了确认您是否运行了完全相同的代码?
-
是的,运行相同的代码。你遇到了什么错误?
标签: r tidyverse rselenium webautomation