带有 RSDriver 的 RSelenium。错误:httr 输出:无法连接到本地主机端口 4445:连接被拒绝

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

我正在尝试使用

RSelenium
进行网页抓取。我正在按照 cran 上的说明学习基础教程。推荐的方法是安装 Docker(参见教程以及this stackoverflow 答案)。如果我理解正确,这对我来说不是一个选择,因为我在 Windows 7 上运行,
Docker
似乎不可用(参见 docker 论坛)。

因此,我正在尝试使用 RSDriver 的选项 2。我跑

RSelenium::rsDriver()

remDr <- remoteDriver(
  remoteServerAddr = "localhost",
  port = 4445L,
  browserName = "firefox"
)
    
remDr$open()

得到错误

> remDr$open()
[1] "Connecting to remote server"
Error in checkError(res) : 
  Undefined error in httr call. httr output: Failed to connect to localhost port 4445: Connection refused

这个问题在herehereherehere之前已经被问过和回答过,尽管这些都是使用Docker时的相同错误,他们的解决方案对我不起作用。

有没有办法让

rsDriver
运行?作为 Windows 7 用户,我有什么选择吗?

r docker web-scraping windows-7 rselenium
3个回答
0
投票

对于

RSelenium
版本 1.7.7,这是一个解决方法:

library(RSelenium)

remDr <- rsDriver(
  port = 4445L,
  browser = "firefox"
)

此命令结合了服务器设置和驱动程序启动。


0
投票

我的问题(在 Mac 上)是更新 Java:

https://www.oracle.com/java/technologies/downloads/#jdk19-mac

在此之后工作。


0
投票

Yiou 可以考虑以下两种方法来使用 RSelenium :

library(RSelenium)

shell('docker run -d -p 4446:4444 selenium/standalone-firefox') # Docker has to be installed
remDr <- remoteDriver(remoteServerAddr = "localhost", port = 4446L, browserName = "firefox")
remDr$open()
remDr$navigate("https://www.my_Website.com")
library(RSelenium)
library(wdman)

port <- as.integer(4444L + rpois(lambda = 1000, 1))
pJS <- wdman::phantomjs(port = port)
remDr <- remoteDriver(browserName = "phantomjs", port = port)
remDr$open()
remDr$navigate("https://www.my_Website.com")
© www.soinside.com 2019 - 2024. All rights reserved.