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 の URL を使うのは、そのエンドポイントが実際に SOCKS5 を話す場合だけにしてください。引数のベクターを組み立てるときは、競合する既存のプロキシ スイッチを取り除きます。
目的の CDP 操作は session 経由で実行し、その後にセッション、コントローラー、所有しているブラウザーを R ワークロードの後片付けの一部として閉じます。ナビゲーションがエラーを投げる場合、try/finally 形式の R の後片付け経路が役立ちます。
Chromote の共有既定ブラウザーを使うアプリケーションでは、set_chrome_args が今後のブラウザー構築の既定値を変更します。既存のプロセスは再起動しません。上記のように明示的な Chrome オブジェクトを作ると、所有関係と起動のタイミングが見えるようになります。
R 自身の http_proxy または https_proxy 環境は、このブラウザーを変えずに R のダウンローダーを設定できます。同様に、Chrome の経路を変えても、別の R API 呼び出しは設定されません。CDP 接続のどちら側がリクエストを送るのかを特定してください。