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 の URL を使うのは、そのエンドポイントが実際に SOCKS5 を話す場合だけにしてください。引数のベクターを組み立てるときは、競合する既存のプロキシ スイッチを取り除きます。

目的の CDP 操作は session 経由で実行し、その後にセッション、コントローラー、所有しているブラウザーを R ワークロードの後片付けの一部として閉じます。ナビゲーションがエラーを投げる場合、try/finally 形式の R の後片付け経路が役立ちます。

Chromote の共有既定ブラウザーを使うアプリケーションでは、set_chrome_args が今後のブラウザー構築の既定値を変更します。既存のプロセスは再起動しません。上記のように明示的な Chrome オブジェクトを作ると、所有関係と起動のタイミングが見えるようになります。

R 自身の http_proxy または https_proxy 環境は、このブラウザーを変えずに R のダウンローダーを設定できます。同様に、Chrome の経路を変えても、別の R API 呼び出しは設定されません。CDP 接続のどちら側がリクエストを送るのかを特定してください。

関連記事