在 Chrome 启动前选好 Chromote 的代理
保留 Chromote 现有的浏览器参数,加入代理开关,并为该线路启动一个新的 Chrome 对象。
Chromote 会话与一个 Chrome 进程通信。它的浏览器请求会遵循该进程的代理配置,因此要在创建之前设置好参数:
args <- c(
chromote::get_chrome_args(),
"--proxy-server=http://proxy.example:8080"
)
browser <- chromote::Chrome$new(args = args)
controller <- chromote::Chromote$new(browser = browser)
session <- chromote::ChromoteSession$new(parent = controller)这样做保留了 Chromote 现有的默认参数,并加入了 HTTP 监听;来自HTTP 代理列表的端点可以填入示例 URL,用于允许的公开浏览。只有当端点确实支持 SOCKS5 时,才改用 socks5 URL。在拼接参数向量时,要移除与之冲突的现有代理开关。
通过会话执行所需的 CDP 操作,然后作为 R 工作负载清理的一部分,关闭会话、控制器和自有浏览器。如果导航抛出错误,try/finally 风格的 R 清理路径会很有用。
对于使用 Chromote 共享默认浏览器的应用,set_chrome_args 会改变今后构建浏览器时的默认值。它不会重启已有的进程。如上所述显式创建 Chrome 对象,可以让归属关系和启动时机变得可见。
R 自身的 http_proxy 或 https_proxy 环境可以配置 R 下载器,而不改变这个浏览器。同样,改变 Chrome 的线路也不会配置单独的 R API 调用。要辨别是 CDP 连接的哪一侧在发送请求。