RSelenium 的问题
Problems with 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()
根据我在此处找到的建议,我将其更改为以下内容
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 多个地址的循环)。有时在等待一段时间并从它停止的地方重新运行ning 后,它可以工作,有时根本不工作,但我知道它应该工作。我收到以下错误(抱歉,它是英文和法文的混合,但对于说英语的人来说,这几个法文应该不难翻译)
Error in if (!is.null(YD) && grepl("Draft", YD)) { :
valeur manquante là où TRUE / FALSE est requis
(缺少需要 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 一起使用的东西......例如这里 RSelenium through docker 。我试过链接,但页面无法显示...
谁能帮忙解决这个问题?解决我的 rsDriver() 问题以使其成为 100% 有效的解决方案对我来说很好。非常感谢你。有关信息,我在 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 提供了有关如何进行的良好信息。该脚本工作正常并且不会停止(目前,我测试了大约 100 页,并在今天早上启动了循环)。现在还有 运行ning,可能需要一天多的时间才能完成。
我无法使用 rsDriver 解决问题,它总是会因错误而停止
Error in subprocess::spawn_process(tfile, ...) :
could not create a pipe: system error message could not be fetched
我不知道为什么。尽管我解决了我的问题并且可以再次 运行 我的脚本,但如果有人知道 rsDriver() 没有完成这项工作的原因,我将不胜感激。
大家晚上好,
我一直在尝试 运行 我的一个旧脚本使用 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()
根据我在此处找到的建议,我将其更改为以下内容
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 多个地址的循环)。有时在等待一段时间并从它停止的地方重新运行ning 后,它可以工作,有时根本不工作,但我知道它应该工作。我收到以下错误(抱歉,它是英文和法文的混合,但对于说英语的人来说,这几个法文应该不难翻译)
Error in if (!is.null(YD) && grepl("Draft", YD)) { :
valeur manquante là où TRUE / FALSE est requis
(缺少需要 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 一起使用的东西......例如这里 RSelenium through docker 。我试过链接,但页面无法显示...
谁能帮忙解决这个问题?解决我的 rsDriver() 问题以使其成为 100% 有效的解决方案对我来说很好。非常感谢你。有关信息,我在 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 提供了有关如何进行的良好信息。该脚本工作正常并且不会停止(目前,我测试了大约 100 页,并在今天早上启动了循环)。现在还有 运行ning,可能需要一天多的时间才能完成。
我无法使用 rsDriver 解决问题,它总是会因错误而停止
Error in subprocess::spawn_process(tfile, ...) :
could not create a pipe: system error message could not be fetched
我不知道为什么。尽管我解决了我的问题并且可以再次 运行 我的脚本,但如果有人知道 rsDriver() 没有完成这项工作的原因,我将不胜感激。