Обнаружение браузера Python / mod_python?

Я хочу сохранить некоторую статистику о пользователях и местах в базе данных. Например, я хотел бы сохранить "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?

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 дает ее вам.

Если вы используете Django-Framework, вы получаете такой агент пользователя

request.META['HTTP_USER_AGENT']

Очень хороший плагин httpagentparser извлекает каждую деталь и помещает его в словарь.

Установка работает через пипс

pip install httpagentparser

Надеюсь, это поможет... Я погуглил около 30 минут, пока не нашел что-то полезное:)

Рон

Метод, предложенный Джедом Смитом, работает, но я был уверен, что есть более простой способ.

req.headers_in переменная содержит всю информацию заголовка, и вы можете легко получить доступ к пользовательскому агенту, используя mod_python, вызвав:

req.headers_in[ 'User-Agent' ]

Не надо звонить req.add_common_vars() при использовании этого метода.

Другие вопросы по тегам