我正在使用w3m。如何覆盖此基于文本的Web浏览器的用户代理?我已经尝试将-header“ User-Agent:blah”设置为示例,但是出现以下错误:
w3m: Can't load blah.
我通过修改文件~/.w3m/config
和修改user_agent
行来设置用户代理。我有以下文本,它似乎可以按预期工作:user_agent Mozilla/5.0 (Linux i686; U; w3m 0.5.3; en)
。里面没有:或=符号,只是使您对所使用的语法有所了解。
这与w3m版本0.5.3。一起使用
您也可以用w3m -header 'User-Agent: blah'
进行设置,但问题是它在请求中出现了两次。如果您设置了netcat“ webserver”,则可以看到w3m使用的标题:
$ netcat -lp 9999
# then in another terminal:
$ w3m -header 'User-Agent: foo' http://localhost:9999
# back at netcat:
GET / HTTP/1.0
User-Agent: w3m/0.5.3
Accept: text/html, text/*;q=0.5, image/*
Accept-Encoding: gzip, compress, bzip, bzip2, deflate
Accept-Language: en;q=1.0
Host: localhost:9999
User-Agent: foo
因此它发送2个User-Agent字符串,真实的HTTP服务器可能无法正确解析。
[更新和澄清@richq的好答案的几点:
快速设置UA的方法是:
[echo 'user_agent <my-UA>' > ~/.w3m/config
(在<my-UA>
上粘贴所需的UA)
检查接收到的UA的更容易的方法是简单地获取免费的UA站点页面之一,例如。
[w3m whatsmyuseragent.com -dump
(在屏幕上读取UA。)
w3m whatsmyua.info -o user_agent ='Mozilla / 5.0(Linux i686; U; w3m 0.5.3; en)'
或
echo -e'“ Mozilla / 5.0(Linux i686; U; w3m 0.5.3; zh)” \ n“ Mozilla / 5.0(Linux x86_64; U; w3m 0.5.3; en)”'> .ua
w3m whatsmyua.info -o user_agent =“ $(shuf -n1 .ua)”