2009-11-06 197 views
4

我想保留一些有關數據庫中用戶和位置的統計信息。例如,我想存儲「Mozilla」,「Firefox」,「Safari」,「Chrome」,「IE」等等,以及版本,可能還有操作系統。瀏覽器檢測Python/mod_python?

我想從Python中找到的是這個字符串;

的Mozilla/5.0(X11; U; Linux的i686的; EN-US; RV:1.9.0.14)的Gecko/2009090216 Ubuntu的/ 9.04(jaunty中)的Firefox/3.0.14

有沒有辦法使用的有效途徑Python或mod_python來檢測http用戶代理/瀏覽器?

回答

3

HTTP_USER_AGENT包含此信息,並且會在你的應用程序使用的環境變量傳遞。在mod_python的,這表現爲:

def my_request_handler(req): 
    req.add_common_vars() 
    agent = req.subprocess_env.get("HTTP_USER_AGENT") 

    # `agent` now contains the full user agent of the browser, or None 

這是一個基本的CGI的事情,但這是mod_python的是如何把它交給你。

2

Jed Smith提出的方法有效,但我確信有一種更簡單的方法。

req.headers_in變量包含了所有的頭信息,你可以很容易地通過調用訪問使用mod_python的用戶代理:

req.headers_in[ 'User-Agent' ] 

無需調用req.add_common_vars()使用此方法時。

2

如果-framework你得到的用戶代理這樣

request.META['HTTP_USER_AGENT'] 

非常不錯的插件httpagentparser提取的每一個細節,並把它的字典您使用的是Django的

安裝通過PIP工作

pip install httpagentparser 

希望這有助於...我GOOGLE了約30分鐘,直到我發現一些有用的東西:)

羅恩