我正在使用w3m。我如何去覆盖这个基于文本的网络浏览器的用户代理?我曾尝试设置 -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
(将所需的 UA 粘贴到 上<my-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; en)"\n"Mozilla/5.0 (Linux x86_64; U; w3m 0.5.3; en)"' >.ua
w3m whatsmyua.info -o user_agent="$(shuf -n1 .ua)"