2012-04-21 80 views
3

我正在使用w3m。我該如何重寫這個基於文本的Web瀏覽器的用戶代理?我已經嘗試設置-header「的User-Agent:嗒嗒」作爲一個例子,但我得到了以下錯誤:如何在w3m中設置用戶代理

w3m: Can't load blah. 

回答

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',但問題是它在請求中出現兩次。你可以看到,w3m的使用,如果你建立一個netcat的「網絡服務器」的標題:

$ 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服務器的正確分析。

2

隨時更新和@ richq的很好的回答澄清幾點:

  • 新的w3m只安裝創建一個空的config文件夾(〜/ .w3m)
  • 有沒有 ':' 或 '='在用戶代理字符串(UA)是不相關的(w3m的發送任何是在該行)
  • 確認使用-header選項來發送第二UA是一個好主意(和不必要的)
  • 快速,一個設置UA的基線是:

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

  • ,並檢查所接收到的UA的更簡單的方法是簡單地搶免費UA網站的頁面之一,防爆。

    w3m whatsmyuseragent.com -dump(閱讀UA在屏幕上。)