如何解决RSelenium错误消息“无法连接到本地主机端口4444:连接被拒绝”?

时间:2018-12-20 17:06:15

标签: r selenium docker

我正在尝试将RSeleniumDocker结合使用来抓取网站。但是,我在尝试使RSelenium / Docker正常工作时遇到了一些问题。

具体地说,我在计算机上安装了Docker,它似乎运行良好(打开鲸鱼时,我在下面看到它的图像)。

Docker screenshot

然后在R中,我顺利运行以下代码,并查看预期的输出。

shell('docker run -d -p 4445:4444 selenium/standalone-chrome')
shell('docker ps')
CONTAINER ID        IMAGE                        COMMAND                  CREATED             STATUS              PORTS                    NAMES
d7de815ce644        selenium/standalone-chrome   "/opt/bin/entry_poin…"   13 minutes ago      Up 13 minutes       0.0.0.0:4445->4444/tcp   zen_mclean

但是当我随后运行以下代码时,我总是收到以下错误消息:

remDr <- RSelenium::remoteDriver(remoteServerAddr = "localhost",
                             port = 4444,
                             browserName = "chrome")
remDr$open()
[1] "Connecting to remote server"
Error in checkError(res) : 
  Undefined error in httr call. httr output: Failed to connect to localhost port 4444: Connection refused

我不确定这里发生了什么(我是新手)。有人可以帮我弄清楚该怎么办吗?

如果有帮助,我正在运行Windows 10。

2 个答案:

答案 0 :(得分:0)

在Docker中,您已将主机端口4445绑定到selenium-driver端口4444。

这意味着如果您在主机中运行R,则需要指定端口= 4445

能解决吗?

答案 1 :(得分:0)

我设法通过卸载正在使用的Docker Toolbox和VMBox并从他们的网站上安装了最新版本的Docker来解决了这个问题。