我想下载一个文件使用webdriver包(phantomJS),然而每当我点击/输入对象,什么也没发生.我打算点击'下载dos dados',然后点击并下载'Baixar . csv'.
library(webdriver)
url <-'https://idesevis.dee.rs.gov.br/#tab-9023-6'
#webdriver::install_phantomjs() # If it is not installed
pjs <- run_phantomjs()
ses <- Session$new(port = pjs$port)
ses$go(url)
ses$getUrl()
### Click on 'Download dos dados'
search <- ses$findElement(xpath='/html/body/div[2]/nav/div/ul/li[6]/a')
search$sendKeys('html',key$enter)
### Finds and clicks 'Baixar .csv'
search <- ses$findElement(xpath='/html/body/div[2]/div[3]/div/div[7]/div/div[1]/form/a')
search$sendKeys('html',key$enter)
ses$takeScreenshot()
字符串
显然,即使使用完整的xpath,我也没有选择对象'Baixar .csv'。我使用webdriver,因为我不能在我的笔记本上使用RSelenium,静态webscraping不适合这里,因为每次访问主URL时会话代码都会改变。
1条答案
按热度按时间z6psavjg1#
CSV下载,至少在这个特定的情况下,Shiny驱动的页面,也可以在浏览器会话之外工作,所以不是在JavaScript中触发下载,你可以从CSV链接中提取 href 并将其传递给
download.file()
/httr(2)
/curl
。字符串
下载的数据集:
型
创建于2023-12-27带有reprex v2.0.2