在Linux下由cron运行时RSelenium失败 - 为什么?

问题描述 投票:0回答:1

我在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 - >

非常感谢任何帮助。

r linux selenium cron phantomjs
1个回答
0
投票

尝试使用以下方法之一关闭先前的连接:

remDr$close()

remDr$server$stop()

© www.soinside.com 2019 - 2024. All rights reserved.