我用R编写了一个机器人来从Web服务器中抓取数据。使用RSelenium用R编写机器人。我编写了两个版本,一个版本使用chrome使用独立硒,另一个版本直接使用phantomjs。当我手动启动它们时,这两个版本在Linux服务器(OpenSuSE)上都能很好地运行。但是,当我使用 cron 启动它们时,它们都在服务器上失败。在后一种情况下,尝试创建驱动程序时会出现如下错误:
硒服务器信号端口= 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中的错误(端口=端口,详细=详细,版本=版本,: 硒服务器信号端口= 4567已在使用中。 调用:source ... withVisible-> eval-> eval-> rsDriver->
非常感谢您的帮助。
答案 0 :(得分:0)
尝试使用以下其中一项关闭先前的连接:
remDr$close()
remDr$server$stop()