如何在w3m中设置用户代理

时间:2012-04-21 09:57:52

标签: linux browser user-agent agent w3m

我正在使用w3m。如何覆盖此基于文本的Web浏览器的用户代理?我试过设置-header“User-Agent:blah”作为示例,但是我收到以下错误:

w3m: Can't load blah.

3 个答案:

答案 0 :(得分:3)

我通过修改文件~/.w3m/config并修改user_agent行来设置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服务器可能无法正确解析。

答案 1 :(得分:2)

更新并澄清@ richq的好答案中的几点:

  • 新w3m安装只创建一个空的配置文件夹(〜/ .w3m)
  • 在用户代理字符串(UA)中没有':'或'='是无关紧要的(w3m发送该行上的任何内容)
  • 确认使用-header选项发送第二个UA是一个坏主意(并且不必要)
  • 设置UA的快速单行是:

    echo 'user_agent <my-UA>' > ~/.w3m/config(在<my-UA>上粘贴所需的UA)

  • 检查收到的UA的更简单方法是简单地抓住其中一个免费的UA网站页面,例如

    w3m whatsmyuseragent.com -dump(在屏幕上阅读UA。)

答案 2 :(得分:0)

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)"