Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

229
Visualizações
¿Cómo hago clic en un "enlace" de javascript usando rselenium para comenzar a descargar el archivo de Excel?

Soy un principiante en R y he estado tratando de raspar el siguiente sitio web:

https://sinca.mma.gob.cl/cgi-bin/APUB-MMA/apub.htmlindico2.cgi?page=pageFrame&header=Las%20Condes&macropath=./RM/D13/Cal/0001&macro=0001.diario.diario&from= 970508&to=090312&

para comenzar a descargar automáticamente un archivo de Excel de esta estación de monitoreo del aire aquí en Chile. Sin embargo, noté que al usar SelectorGadget no se podía seleccionar el enlace de descarga y descubrí que era porque el enlace era un enlace javascript (href="javascript:Open('xcl');">Excel CSV) como se ve en la imagen abajo.

ingrese la descripción de la imagen aquí

Mi pregunta, ¿hay alguna forma de simular un clic en ese enlace de javascript? Ya he simulado clics para otras partes del mismo sitio web con éxito, pero no eran enlaces de JavaScript. Esto es lo que ya he probado:

 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&macropath=./RM/D13/Cal/0001&macro=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&macropath=./RM/D13/Cal/0001&macro=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()

Mi objetivo es poder hacer clic en el enlace y comenzar a descargar el archivo de Excel. He estado tratando de hacer esto durante un par de días y estoy atascado, por lo que cualquier ayuda sería muy apreciada.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Está dentro de un marco que está dentro de un conjunto de marcos. Primero debe cambiar a ese marco a través del conjunto de marcos principal, utilizando RSelenium. Puede usar los ID de marco frMain y right para apuntar a los elementos a los que cambiar. Entonces debería poder apuntar simplemente a ese href usando un atributo css = selector de valor de [href*=xcl] . El * es el operador contiene que especifica que el valor del atributo href del destino contiene la subcadena xcl .

Algo como lo siguiente (no probado):

 frame_set <- remDr$findElement("css", "#frMain") remDr$switchToFrame(frame_set) child_frame <- remDr$findElement("css", "#right") remDr$switchToFrame(child_frame) csv_download <- remDr$findElement(using = "css", "[href*=xcl]") csv_download$clickElement()

Puede usar las herramientas de desarrollo del navegador F12 para ver esa ruta:

ingrese la descripción de la imagen aquí

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda