RSelenium的问题

各位晚上好,

我一直在尝试使用RSelenium来运行我的旧脚本。 由于一些变化,它不再工作。 原来的代码是

require(RSelenium) require(rvest) RSelenium::checkForServer() RSelenium::startServer() remDr <- remoteDriver() remDr$open() remDr$navigate(linkPlayersPage) doc <- remDr$getPageSource() doc <- read_html(doc[[1]]) path <- "//table[@class='playersquickfindtable']/tbody/tr/td/form/table/tbody/tr/td/div/img" quickFind <- doc %>% html_nodes(xpath=path) %>% xml_attr("alt") remDr$close() 

以下的build议,我发现在这里,我改变了以下

 require(RSelenium) require(rvest) driver <- rsDriver() remDr <- driver[["client"]] remDr$navigate(linkPlayersPage) doc <- remDr$getPageSource() doc <- read_html(doc[[1]]) path <- "//table[@class='playersquickfindtable']/tbody/tr/td/form/table/tbody/tr/td/div/img" quickFind <- doc %>% html_nodes(xpath=path) %>% xml_attr("alt") remDr$close() 

事情是,它并不真正的工作。 或者,它有时可以工作,但首先,它是非常慢,第二个(更重要的问题)脚本经常停止(我有一个循环多于11000个地址)。 有时在等待一段时间之后,从停止的地方重新开始,它有效,有时甚至不行,但我知道它应该起作用。 我收到以下错误(对不起,这是英文和法文的混合体,但对于说英文的人来说,less数法语单词不应该很难翻译)

Error in if (!is.null(YD) && grepl("Draft", YD)) { : valeur manquante là où TRUE / FALSE est requis缺less值,其中TRUE / FALSE是必需的

checking geckodriver versions: BEGIN: PREDOWNLOAD Error in open.connection(con, "rb") : HTTP error 403.

有时我会遇到一些其他的错误,但是最常见的是“10”,我真的不知道为什么以及如何解决这个问题。

今天我有一个新的错误

checking geckodriver versions: BEGIN: PREDOWNLOAD BEGIN: DOWNLOAD BEGIN: POSTDOWNLOAD checking phantomjs versions: BEGIN: PREDOWNLOAD BEGIN: DOWNLOAD BEGIN: POSTDOWNLOAD Error in subprocess::spawn_process(tfile, ...) : could not create a pipe: system error message could not be fetched

我感觉所有这些都与rsDriver()有关。

在我读到的答案中,提到最好做的事情不是使用rsDriver()而是使用Docker 。 在昨天之前,我不知道这是什么,我找不到什么东西可以清楚地解释它是怎么做的以及如何使用它和R和RSelenium …例如这里通过docker的RSelenium 。 我已经尝试了链接,但页面不显示…

有谁能帮助解决这个问题吗? 解决我的rsDriver()问题,使其成为100%的工作解决scheme对我来说很好。 非常感谢你。 有关信息,我在OpenSuse(不知道这是否会使事情不同比Windows或Mac系统)。

我正在运行的列表包含NFL网站上的球员的网页。 一个例子是http://www.nfl.com/players/profile?id=00-0019290

最后,我可以使用Docker来解决这个问题。 以下https://cran.r-project.org/web/packages/RSelenium/vignettes/RSelenium-docker.html提供了有关如何继续的良好信息&#x3002; 脚本工作正常,并没有停止(现在,我testing了大约100页,并启动了今天上午循环)。 它仍在运行,可能需要一天多的时间才能完成。 我不能解决这个问题,使用rsDriver,它总是会停止与错误Error in subprocess::spawn_process(tfile, ...) : could not create a pipe: system error message could not be fetched我不知道为什么。 即使我解决了我的问题,并可以再次运行我的脚本,我将不胜感激,如果有人会知道为什么rsDriver()不做这项工作。