【发布时间】:2021-11-09 20:19:47
【问题描述】:
我是 R 的初学者,我一直在尝试抓取以下网站:
自动开始从智利的这个空气监测站下载 excel 文件。但是,我注意到使用SelectorGadget 无法选择下载链接,发现这是因为该链接是一个javascript 链接(href="javascript:Open('xcl');">Excel CSV),如下图所示。
我的问题是有什么方法可以模拟对该 javascript 链接的点击?我已经成功地模拟了同一网站其他部分的点击,但它们不是 javascript 链接。这是我已经尝试过的:
library(rvest)
library(RSelenium)
rD <- rsDriver(browser="firefox", port=4040L, verbose=F)
remDr <- rD[["client"]]
remDr$open()
remDr$navigate("https://sinca.mma.gob.cl/cgi-bin/APUB-MMA/apub.htmlindico2.cgi?page=pageFrame&header=Las%20Condes¯opath=./RM/D13/Cal/0001¯o=0001.diario.diario&from=970508&to=090312&")
Sys.sleep(5) # give the page time to fully load
# click on excel link to start downloading file (doesnt work) ------------
xls <- remDr$findElement("xpath", "/html/body/table/tbody/tr/td/table[2]/tbody/tr[1]/td/label/span[3]/a")
xls$clickElement()
/html/body/table/tbody/tr/td/table[2]/tbody/tr[1]/td/label/span[3]/a
##### TESTING
remDr$navigate("https://sinca.mma.gob.cl/cgi-bin/APUB-MMA/apub.htmlindico2.cgi?page=pageFrame&header=Las%20Condes¯opath=./RM/D13/Cal/0001¯o=0001.diario.diario&from=970508&to=090312&")
excel <- remDr$findElement(using = "css selector", "[href*=javascript]")
#excel <- remDr$findElement(using = "css selector", '[href*="javascript:Open('xcl')"]')
excel$highlightElement() # to visually check what elemnet is selected
remDr$closeServer()
remDr$close()
我的目标是能够单击链接并开始下载 excel 文件。几天来我一直在尝试这样做,但我被卡住了,所以任何帮助都将不胜感激。
【问题讨论】:
标签: javascript r click rselenium