如何从Bash获取新Chrome会话的User Agent并存入变量?
在Bash中获取Google Chrome的User Agent字符串并存入变量
Google Chrome 并没有--user-agent命令行参数来直接输出当前会话的User Agent,所以你提供的伪代码无法直接工作。以下是几种可行的替代方案:
方法1:使用Chrome无头模式获取真实UA
通过Chrome的无头模式运行一个极简HTML页面,利用JavaScript读取并输出navigator.userAgent,再捕获输出结果:
USER_AGENT=$(google-chrome --headless --disable-gpu --dump-dom --no-sandbox 'data:text/html,<script>document.write(navigator.userAgent)</script>') echo "$USER_AGENT"
参数说明:
--headless:以无头模式启动Chrome,无需显示图形界面--disable-gpu:避免部分环境下的GPU渲染错误--dump-dom:输出页面渲染后的DOM内容--no-sandbox:部分Linux系统需要该参数绕过沙箱限制(如果运行报错可尝试添加)
如果你的系统安装的是Chromium而非Chrome,将命令中的google-chrome替换为chromium-browser即可。
方法2:从Chrome配置文件提取(仅适用于已启动过的会话)
Chrome会在用户配置目录中存储UA相关信息,可通过解析配置文件提取,但这种方法依赖Chrome版本和配置结构,准确性不如无头模式:
# Linux系统下Chrome默认配置路径 CHROME_CONFIG_DIR="$HOME/.config/google-chrome/Default" # 用jq工具解析Preferences文件中的UA字段(需提前安装jq) USER_AGENT=$(jq -r '.user_agent' "$CHROME_CONFIG_DIR/Preferences") echo "$USER_AGENT"
注意:该方法仅能获取Chrome默认配置的UA,无法反映带自定义参数启动会话的UA。
内容的提问来源于stack exchange,提问作者Mario Palumbo
相关产品推荐
相关产品推荐

