如何在 w3m 中设置用户代理



我正在使用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"Web服务器",您可以看到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 个用户代理字符串,这些字符串可能无法被真正的 HTTP 服务器正确解析。

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

  • 新的 w3m 安装仅创建一个空的配置文件夹 (~/.w3m)
  • 用户代理字符串 (UA) 中没有":"或"="是无关紧要的(w3m 发送该行上的任何内容)
  • 已确认使用 -header 选项发送第二个 UA 是一个坏主意(且不必要)
  • 设置 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)"

相关内容

  • 没有找到相关文章

最新更新