一尘不染

如何使用Rselenium选择下拉框?

selenium

我对英超联赛的数据感兴趣。因此,我尝试从此官方网站获取数据https://www.premierleague.com/stats/top/players/total_pass

我正在使用R和RSelenium包。

library(rvest)
library(httr)
library(RSelenium)

remDr <- remoteDriver(port = 4445L)
remDr$open()
remDr$navigate('https://www.premierleague.com/stats/top/players/total_pass')
getsource <-remDr$getPageSource()
name<- read_html(getsource[[1]]) %>% html_nodes("strong") %>% html_text()

但是我遇到了一些问题。有一些类别的数据,例如季节,位置,俱乐部等。

因此,我认为我可以基于这些类别获取数据。但是我不知道如何在此站点中使用Rselenium在下拉框中选择特定的内容。

我认为,filenElementclickElement对于这个实用的功能。但是,我不知道如何处理这些功能以选择特定条件,例如2016/17赛季和守门员位置。

请给我一个建议。


阅读 289

收藏
2020-06-26

共1个答案

一尘不染

使用以下代码,我能够使浏览器选择2014/15赛季。您将需要检查各种下拉菜单的内容,并根据需要进行扩展。

rD <- rsDriver(port=4444L,browser="chrome")
remDr <- rD$client

#navigate to main page
remDr$navigate('https://www.premierleague.com/stats/top/players/total_pass')

#find 'filter by season' box and click it
webElem <- remDr$findElement(using = 'xpath', value = "//*[@data-dropdown-block='FOOTBALL_COMPSEASON']")
webElem$clickElement()

#find 2014/15 season and click it
webElem1 <- remDr$findElement(using = 'xpath', value = "//*[@data-option-name='2014/15']")
webElem1$clickElement()
2020-06-26