如何使用Rselenium包? css选择器下拉列表元素

时间:2016-07-16 04:22:25

标签: javascript r web-scraping css-selectors rselenium

也许我的问题有点基础,但知道很少编程。我试图自动从下一页下载数据(这是智利政府的页面,因此数据是公开的)使用Rselenium软件包

Odepa historic prices website

我学会了一些关于选择项目和点击几项的知识。但我不知道如何处理下拉列表

    RSelenium::checkForServer()
    RSelenium::startServer(args = c("-port 4455"),
     log = FALSE, invisible = FALSE)
    # RSelenium::startServer() if required
    require(RSelenium)
    remDr <- remoteDriver(remoteServerAddr = "localhost" 
                          , port = 4444
                          , browserName = "chrome"
    )
    remDr$open()

    remDr$getStatus()

    remDr$getCurrentUrl()

    remDr$refresh()

    remDr$navigate("http://apps.odepa.cl/SeriesHistoricasParams")

    table <- remDr$findElement(using='id', value="table")
    remDr$switchToFrame(table)

    option <- remDr$findElement(using = 'xpath', "//*/option[@value = '01']")

如果有人可以帮助我从显示的下拉列表中选择选项,我们将不胜感激。请注意,我理解的编程非常少,我使用R进行统计分析。

更新

我可以选择列表中的第一项,然后选择确定。我的问题,列表的其余部分具有相同的名称&#34; selector40&#34;所以我不知道如何正确识别它们。我想我应该编辑代码部分

"//*/option[@value = '01']"

但我不知道如何

enter image description here

这是我的 sessionInfo()

    R version 3.3.1 (2016-06-21)
    Platform: x86_64-pc-linux-gnu (64-bit)
    Running under: Ubuntu 14.04.4 LTS

    locale:
      [1] LC_CTYPE=es_CL.UTF-8      
    [2] LC_NUMERIC=C              
    [3] LC_TIME=es_CL.UTF-8       
    [4] LC_COLLATE=es_CL.UTF-8    
    [5] LC_MONETARY=es_CL.UTF-8   
    [6] LC_MESSAGES=es_CL.UTF-8   
    [7] LC_PAPER=es_CL.UTF-8      
    [8] LC_NAME=C                 
    [9] LC_ADDRESS=C              
    [10] LC_TELEPHONE=C            
    [11] LC_MEASUREMENT=es_CL.UTF-8
    [12] LC_IDENTIFICATION=C       

    attached base packages:
      [1] stats     graphics  grDevices utils    
    [5] datasets  methods   base     

    loaded via a namespace (and not attached):
      [1] rsconnect_0.4.3 tools_3.3.1    
    > library(RSelenium)
    Loading required package: RCurl
    Loading required package: bitops
    Loading required package: RJSONIO
    Loading required package: XML
    > sessionInfo()
    R version 3.3.1 (2016-06-21)
    Platform: x86_64-pc-linux-gnu (64-bit)
    Running under: Ubuntu 14.04.4 LTS

    locale:
      [1] LC_CTYPE=es_CL.UTF-8      
    [2] LC_NUMERIC=C              
    [3] LC_TIME=es_CL.UTF-8       
    [4] LC_COLLATE=es_CL.UTF-8    
    [5] LC_MONETARY=es_CL.UTF-8   
    [6] LC_MESSAGES=es_CL.UTF-8   
    [7] LC_PAPER=es_CL.UTF-8      
    [8] LC_NAME=C                 
    [9] LC_ADDRESS=C              
    [10] LC_TELEPHONE=C            
    [11] LC_MEASUREMENT=es_CL.UTF-8
    [12] LC_IDENTIFICATION=C       

    attached base packages:
      [1] stats     graphics  grDevices utils    
    [5] datasets  methods   base     

    other attached packages:
      [1] RSelenium_1.3.5 XML_3.98-1.4    RJSONIO_1.3-0  
    [4] RCurl_1.95-4.8  bitops_1.0-6   

    loaded via a namespace (and not attached):
      [1] rsconnect_0.4.3 tools_3.3.1     caTools_1.17.1 

0 个答案:

没有答案