使用 Rselenium 和 docker 独立镜像进行网页抓取

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

我再次阅读了有关该主题的许多帖子,但无法理解......

我在 Ubuntu 22.04 操作系统上使用 Rselenium 和 selenium 独立映像与 Docker。

使用 docker 镜像时,以下代码可以正常工作

selenium/standalone-chrome-debug
:

system('docker run -d -p 4445:4444 selenium/standalone-chrome-debug')
remDr <- remoteDriver(remoteServerAddr = "localhost",
                      port = 4445L,
                      browserName = "chrome")
remDr$open()
remDr$navigate("https://fr.distance.to/paris/bayonne-france")
el <- remDr$findElement(using = "css", ".headerRoute > #strck > span:nth-child(1)")
road_distance <- el$getElementText()[[1]]
remDr$close()
system('docker rm -f $(docker ps -aq --filter ancestor=selenium/standalone-chrome-debug)')

但是,完全相同的代码,但使用

selenium/standalone-chrome
图像,会在
remDr$open()
的第一步卡住,最终崩溃并输出:

remDr$open()
[1] "Connecting to remote server"
$id
[1] NA

有什么想法为什么以及如何解决这个问题吗?我真的不介意使用

debug
图像的
selenium/standalone-chrome
版本,但它似乎已被弃用,我很想了解这里发生的事情

r docker web-scraping rselenium docker-selenium
1个回答
0
投票

我遇到了同样的问题,你的帖子实际上非常有帮助,因为它实际上允许我连接到standalone-chrome-debug docker容器。

我认为基本问题是 RSelenium 已经很长时间没有更新并且正在使用 Selenium 版本 2。碰巧的是,图像 selenium/standalone-chrome-debug 也很长时间没有更新。我相信图像 selenium/standalone-chrome 使用的是较新版本的 Selenium API,并且在尝试对新图像使用旧 API 时,RSelenium 代码失败。

我不完全确定,但这是我的怀疑。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.