我正在尝试使用
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
这个问题在here、here、here和here之前已经被问过和回答过,尽管这些都是使用Docker时的相同错误,他们的解决方案对我不起作用。
有没有办法让
rsDriver
运行?作为 Windows 7 用户,我有什么选择吗?
对于
RSelenium
版本 1.7.7,这是一个解决方法:
library(RSelenium)
remDr <- rsDriver(
port = 4445L,
browser = "firefox"
)
此命令结合了服务器设置和驱动程序启动。
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")