在Linux下由cron运行时RSelenium失败 - 为什么?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Linux下由cron运行时RSelenium失败 - 为什么?相关的知识,希望对你有一定的参考价值。
我在R中编写了一个机器人来从Web服务器中抓取数据。机器人使用RSelenium用R编写。我写了两个版本,一个是使用chrome的独立selenium,另一个是直接使用phantomjs。当我手动启动它们时,这两个版本在Linux服务器(OpenSuSE)上都能很好地工作。但是,当我使用cron启动它们时,两者都在服务器上失败。在后一种情况下,当我尝试创建驱动程序时,我收到类似的错误:
Selenium服务器信号port = 4567已在使用中。
端口没问题,按预期收听。只有当我通过cron启动脚本时才会发生这种情况。
你能告诉我什么是错的,我该如何解决?非常感谢。
我尝试了其他端口和很多R的东西。我想问题是在cron-R-Rselenium交互中的某个地方。 (cron在服务器上运行正常,其他一些更简单的python脚本会丢弃静态页面。)
这是phantomjs的最小例子。
library(RSelenium)
system("./phantomjs --webdriver 4567", wait = FALSE)
Sys.sleep(10)
driver <- rsDriver(browser = "phantomjs", port = 4567L)
remDr <- driver$client
它在driver <- rsDriver(browser = "phantomjs", port = 4567L)
行上失败,出现以下错误消息:
wdman :: selenium中的错误(port = port,verbose = verbose,version = version,:Selenium服务器信号port = 4567已经在使用。调用:source ... withVisible - > eval - > eval - > rsDriver - >
非常感谢任何帮助。
尝试使用以下方法之一关闭先前的连接:
remDr$close()
remDr$server$stop()
以上是关于在Linux下由cron运行时RSelenium失败 - 为什么?的主要内容,如果未能解决你的问题,请参考以下文章