r - 尽管 GET 请求有效,但无法在公司代理后面运行 RSelenium?
问题描述
我正在尝试在我公司的代理后面运行 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”)中的 PREDOWNLOAD 错误:达到超时:[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
我很困惑为什么无论我尝试什么都无法让它发挥作用。任何指导都会挽救生命。
谢谢你
解决方案
这是一个很难搜索的问题,因为由此产生的错误实际上只是NA
. 但我发现这个关于如何使用 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")
但是您有一个硬编码的用户名和密码,由于安全原因,这似乎无法与 chrome 一起使用。
但是,有人编写了一个可以使其工作的脚本(我没有尝试使用它,更不用说 R 了,很想知道是否有人可以让它工作)。
对于它的价值,我遇到了所有相同的问题,所以我通过代理后面的 httr/rvest 发出请求,但是对于通过 RSelenium 的请求,我曾经httr::reset_config()
停止使用代理,所以至少 RSelenium 工作(这不是解决这个问题的方法,只是妥协)。
推荐阅读
- hibernate - 针对 H2 的 spring data JPA 查询失败,找不到模式
- microsoft-graph-api - Microsoft Graph API 停止在一个驱动器项目中继承权限
- java - .fillOval 坐标在 repaint() 期间未更新
- python - 弹性搜索查询从 regexp 输入参数中查找列表中值的完全匹配
- javascript - 在 vue.js 中显示原始图像内容类型
- ruby-on-rails-5 - ActiveRecord 生成条件 SQL
- java - java gradle 找不到要编译的github仓库
- sqlite - sqlite julianday 添加秒数的结果不正确
- javascript - 如何设置特定滑块的状态?
- c# - uwp - '应用程序调用了一个为不同线程编组的接口