【问题标题】:How to set user agent in w3m如何在 w3m 中设置用户代理
【发布时间】:2012-05-02 17:31:01
【问题描述】:

我正在使用w3m。我如何去覆盖这个基于文本的网络浏览器的用户代理?我曾尝试设置 -header "User-Agent: blah" 作为示例,但出现以下错误:

w3m: Can't load blah.

【问题讨论】:

    标签: linux browser user-agent agent w3m


    【解决方案1】:
    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)"
    

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案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 服务器正确解析。

        【讨论】:

          猜你喜欢
          • 2020-08-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多