如何在w3m中设置用户代理

问题描述 投票:3回答:3

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

w3m: Can't load blah.
linux browser user-agent agent w3m
3个回答
3
投票

我通过修改文件~/.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服务器可能无法正确解析。


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


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; zh)” \ n“ Mozilla / 5.0(Linux x86_64; U; w3m 0.5.3; en)”'> .ua

w3m whatsmyua.info -o user_agent =“ $(shuf -n1 .ua)”

© www.soinside.com 2019 - 2024. All rights reserved.