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

标签 r linux selenium cron phantomjs

我用 R 写了一个机器人来从网络服务器上抓取数据。该机器人是使用 RSelenium 用 R 语言编写的。我写了两个版本,一个是使用 chrome 的独立 selenium,另一个是直接使用 phantomjs。当我手动启动这两个版本时,它们在 Linux 服务器 (OpenSuSE) 上都运行良好。但是,当我使用 cron 启动它们时,它们都在服务器上失败。在后一种情况下,当我尝试创建驱动程序时会遇到这样的错误:

Selenium server signals port = 4567 is already in use.

端口正常,正在按预期监听。只有当我通过 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) 行失败并显示以下错误消息:

Error in wdman::selenium(port = port, verbose = verbose, version = version, : Selenium server signals port = 4567 is already in use. Calls: source ... withVisible -> eval -> eval -> rsDriver ->

非常感谢您的帮助。

最佳答案

尝试关闭与以下之一的先前连接:

remDr$close()

remDr$server$stop()

关于RSelenium 在 Linux 下通过 cron 运行时失败 - 为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55935759/

相关文章:

r - 如何设置spplot的默认主题?

linux - 每次系统启动时更改墙纸的 Shell 脚本

linux - Web 应用程序上的访问控制

c++ - 给定文件描述符如何 : Obtain the device node of the device containing a file,

Python - Firefox headless (headless)

r - 在 R 中绘制子集 os 子集

r - 如何使用 R markdown 和 pandoc 防止在 LaTeX 文档中转义〜(波浪号)字符?

r - 如何隐藏 corrplot 的选定相关性?

java - 如何使用 Selenium WebDriver Java 自动化拖放功能

python - 在日历日期选择器上使用 Selenium