我想从bash的新Google Chrome浏览器会话(刚打开)中获取User Agent HTTP request header字符串,并将其放入变量中。
下面是伪代码:
USER_AGENT="$(google-chrome --user-agent)"
echo "$USER_AGENT"
输出示例:
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36
如果使用google-chrome
命令无法做到这一点,那么等效的解决方法是什么?
4条答案
按热度按时间ojsjcaue1#
Chrome在headless模式下使用
--repl
命令行选项计算JavaScript表达式。您可以尝试以下操作来获取user agent string:注意:运行
chrome
二进制文件(例如:/opt/google/chrome/chrome
)而不是google-chrome
shell脚本,因为shell脚本似乎不支持传递标准输入。sed
命令从输出中删除提示符,jq
命令从Chrome打印的JSON字符串中提取值。但是请注意,使用
--headless
命令行标志运行Chrome时的用户代理字符串与定期运行时的用户代理字符串不同。至少Chrome 105似乎有“无头Chrome”而不是“Chrome”。gfttwv5a2#
这里有一个替代方法,它不特定于Chrome,也适用于许多其他浏览器和http客户端。它涉及使用netcat设置HTTP服务器并捕获User-Agent头值:
你可以用另一个浏览器或http客户端来替换最后的google-chrome调用。
cs7cruho3#
另一个基于Jukka Matilainen的回答:
llycmphe4#
对于冗余,在某些情况下中断,还可以添加以下内容进行清理: