【问题标题】:Failing to run RSelenium behind Company Proxy, though GET requests work?无法在公司代理后面运行 RSelenium,尽管 GET 请求有效?
【发布时间】:2021-05-13 10:30:06
【问题描述】:

我正在尝试在我公司的代理后面运行 RSelenium,并且可以通过 GET 请求成功连接,但我无法正确运行 rsDriver() 函数。

set_config(use_proxy(url = "proxy.company.com",
                     port = 80,
                     username = "greg",
                     password = "password"))

执行此操作后,我可以成功运行 GET 请求,如果不使用 setconfig,我将无法执行:

> GET("http://google.com")
Response [http://www.google.com/]
  Date: 2021-02-09 18:30
  Status: 200

我尝试使用 rsDriver 时遇到了与 Chrome 或 Firefox 的连接问题:

cprof <- list(chromeOptions = 
                list(args = list("--proxy-server=proxy.company.com")))

driver <- rsDriver(browser = c("chrome"), extraCapabilities = cprof)

检查 Selenium 服务器版本: 开始:预下载 open.connection(con, "rb") 中的错误: 已达到超时:[www.googleapis.com] 操作在 10014 毫秒后超时,收到 0 个字节中的 0 个

我也尝试使用 Docker 客户端运行,但尝试连接后收到一条奇怪的消息:

> remDr <- remoteDriver(remoteServerAddr = "127.0.0.1", port = 444L) 
> remDr$open()
[1] "Connecting to remote server"
$id
[1] NA

我很困惑为什么无论我尝试什么都无法让它发挥作用。任何指导都可以挽救生命。

谢谢你

【问题讨论】:

  • 这段代码是否对您有用,但有一天突然停止工作?

标签: r docker proxy rselenium rsdriver


【解决方案1】:

这是一个很难搜索的问题,因为结果错误实际上只是NA。但我发现this 了解如何将代理与 RSelenium 一起使用。基本上:

cprof <- list(chromeOptions = 
                  list(args = list("--proxy-server=http://118.69.61.212:53281")))

driver<- rsDriver(browser=c("chrome"), extraCapabilities = cprof)
driver$client$navigate("http://ipinfo.io")

但出于安全原因,您有一个硬编码的用户名和密码,似乎是not possible to use with chrome

但是,有人 made a script 可以使它工作(我没有尝试使用它,更不用说 R,很想知道是否有人可以使它工作)。

对于它的价值,我遇到了所有相同的问题,所以我通过代理后面的 httr/rvest 发出请求,但对于通过 RSelenium 的请求,我使用httr::reset_config() 停止使用代理,所以至少 RSelenium 工作(那不是解决这个问题,只是妥协)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-20
    • 2021-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-10
    相关资源
    最近更新 更多