私はchrome次の方法で実行しています:
google-chrome --headless --disable-gpu --dump-dom --disable-web-security
企業プロキシが原因で、資格情報の入力を要求する認証ポップアップにぶつかっているようです。これらの資格情報をコマンドラインに挿入するにはどうすればよいですか?
これを直接行う方法はありません。 Googleは、ヘッドレスモードでログイン/パスワードを使用したプロキシへの接続を許可していません。
しかし、MITMProxyを使用することで、資格のあるプロキシを使用することができました。 Squidのような他のテクノロジーも同じように機能しますが、使用がより複雑になります。
秘訣は、使用する実際のプロキシを介して呼び出しを転送するMITMProxyを使用してローカルアップストリームプロキシを作成することです。 MITMProxyはあなたのために自動化を行います。
MITMProxyをインストールした後、コマンドラインで使用できます。
~/mitmdump -p 9000 --mode upstream:http://proxy:port --set upstream_auth=login:password --ssl-insecure
〜/ mitmdumpをmitmproxyへの実際のパスに置き換える必要があります(mitmdumpはコンソールで実行します)。 -p 9000は、MITMProxyがリッスンしていることを意味します http:// localhost:90 したがって、このプロキシをChromeヘッドレスで呼び出す必要があります。--modeupstreamはMITMProxyに通知します使用する実際のプロキシにトラフィックをリダイレクトします。--setupstream_authを使用すると、正しい資格情報に接続できます。--ssl-insecureを使用すると、httpsを使用して、誤った証明書の検証を無視できます。
次に、chrome:
google-chrome --headless --disable-gpu --dump-dom --disable-web-security --proxy-server=http://localhost:9000
Https呼び出しに適切に使用できるようになる前に、certutilを使用してMITMProxyセキュリティ証明書をインポートする必要があります。
certutil -d sql:$HOME/.pki/nssdb -A -t "C,," -n mitm -i ~/.mitmproxy/mitmproxy-ca-cert.pem
このトリックの使用に問題がある場合、MITMProxyにはよくできたドキュメントがあります: https://mitmproxy.org/