在web2py中查找用户使用的浏览器

2 投票
3 回答
1606 浏览
提问于 2025-04-16 17:16

你好,我是web2py的新手,想知道怎么获取用户使用的浏览器信息。

我尝试了下面的代码:

browser=request.env.http_user_agent

但是得到的结果是:

Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.60 Safari/534.24

我这里只用的是Chrome,怎么才能只获取到这个信息呢?


谢谢你,zoer,但这个方法对我没用。

我在想用JavaScript来识别浏览器,然后把信息发送到控制器函数里。

我还想识别操作系统。

我找到了一种方法,可以把值发送到控制器,但我不太明白怎么用。

代码是这样的:$.post(CONTROLLER_URL, {'browser': chrome}, function HANDLER)

这样我就能在request.vars.browse中获取到这个值。

但我还是不太明白怎么用这个$.post,有人知道怎么用吗?

3 个回答

3

在新版本的2.*中,每次请求都会包含浏览器的信息,这个信息是通过调用 request.user_agent() 来获取的。

这个函数使用了:

from gluon.contrib import user_agent_parser

示例信息:

browser :   name    :   Firefox
        version :   15.0.1
is_mobile:  False
is_tablet:  False
os  :   name    :   Windows
        version :   NT 6.1

这些信息总是保存在 session._user_agent 里。

所以你可以检查:

if session._user_agent['browser']['name']=='Chrome':
    ...your code
3

你总是会得到这样的结果,因为这是浏览器引擎的识别方式(可以查看维基百科上的用户代理文章)。

你需要手动解析用户代理字符串,类似于下面这样:

if 'Chrome' in browser:
  users_browser = 'chrome'
1

我觉得你可以按照Zaur的建议去做,如果你只想检测Chrome浏览器的话。否则,你可以看看这个httpagentparser工具。

撰写回答