4

我想在数据库中保留一些关于用户和位置的统计信息。例如,我想存储“Mozilla”、“Firefox”、“Safari”、“Chrome”、“IE”等...以及版本,可能还有操作系统。

我试图从 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 用户代理/浏览器?

4

3 回答 3

3

Jed Smith 建议的方法有效,但我确信有更简单的方法。

req.headers_in变量包含所有标头信息,您可以通过调用 mod_python 轻松访问用户代理:

req.headers_in[ 'User-Agent' ]

req.add_common_vars()使用此方法时无需调用。

于 2010-03-12T16:25:13.340 回答
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 给你的方式。

于 2009-11-06T19:42:11.597 回答
3

如果您使用的是Django -Framework,您将获得这样的用户代理

request.META['HTTP_USER_AGENT']

非常好的插件httpagentparser提取每个细节并将其放入字典。

通过 pip 进行安装

pip install httpagentparser

希望这会有所帮助......我在谷歌上搜索了大约 30 分钟,直到找到有用的东西:)

罗恩

于 2012-06-20T14:05:53.860 回答