返回$id的rsDriver函数不适用

qvtsj1bj  于 2023-04-03  发布在  其他
关注(0)|答案(1)|浏览(79)

我尝试使用Rselenium进行网页抓取,但未能成功打开浏览器。在解决了其他几个问题后,我现在遇到了一个新问题。以下是我使用的代码:

driver  <- rsDriver(remoteServerAddr="localhost", browser = "chrome", 
            chromever = "109.0.5414.74", port=9515L)
server  <- driver$server
browser <- driver[["client"]] 
browser$navigate(url)

rsDriver函数之后,我得到以下输出:

checking Selenium Server versions:`
BEGIN: PREDOWNLOAD`
BEGIN: DOWNLOAD
BEGIN: POSTDOWNLOAD
checking chromedriver versions:
BEGIN: PREDOWNLOAD
BEGIN: DOWNLOAD
BEGIN: POSTDOWNLOAD
checking geckodriver versions:
BEGIN: PREDOWNLOAD
BEGIN: DOWNLOAD
BEGIN: POSTDOWNLOAD
checking phantomjs versions:
BEGIN: PREDOWNLOAD
BEGIN: DOWNLOAD
BEGIN: POSTDOWNLOAD
[1] "Connecting to remote server"
$id
[1] NA

driver$serverbrowser <- driver[["client"]]行运行时没有错误。在执行browser$navigate(url)函数后,我得到NULL。当我运行server$log()时,我得到以下输出:
我有RSelenium v1.7.9,wdman v0.2.6,使用selenium-server-4.8.1。我有windows 10。除了运行代码,我还手动打开了chromedriver,并试图在chromedriver窗口显示的端口上运行驱动程序。我还没有找到任何人有同样的错误,所以任何帮助都非常感谢!

92dk7w1h

92dk7w1h1#

您可以考虑以下方法,该方法效果良好:

library(RSelenium)
library(rvest)
url <- "www.a_url.com"
shell('docker run -d -p 4446:4444 selenium/standalone-firefox')
remDr <- remoteDriver(remoteServerAddr = "localhost", port = 4446L, browserName = "firefox")
remDr$open()
remDr$navigate(url)

使用这种方法,你必须安装Docker。它非常容易安装。

相关问题