Войти Регистрация

Определение и парсинг User Agent на PHP, JS, Python


Фраза «user agent» или «строка user agent» звучит как ругательство. Разработчики используют User Agent для определения типа браузера, чтобы знать какими свойствами он обладает. Хотя, гораздо проще и правильнее определять наличие самого свойства. Но, на сегодняшний день все еще есть применения для строки user agent. Одно из них, например, определить какую мобильную тему выставить на продажу; это можно определить как на серверной стороне, так и на стороне клиента. Для экономии времени и нервов, существует ua-parser, с помощью которого можно получить строку user agent, а также сделать ее парсинг. Информацию о клиенте мы получим в виде объекта. Проводить парсинг можно на PHP, JavaScript и Python.

Пример строки User Agent

'Mozilla/5.0 (iPhone; CPU iPhone OS 5_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9B179 Safari/7534.48.3'

Определение User Agent на JS

var uaParser = require('ua-parser'),
  uaParser.parse(navigator.userAgent);

console.log(ua.tostring());  // -> "Safari 5.0.1"

console.log(ua.toVersionString());  // -> "5.0.1"

console.log(ua.family);  // -> "Safari"

console.log(ua.major); // -> 5

console.log(ua.minor);  // -> 0

console.log(ua.patch);  // -> 1

Определение User Agent на PHP

// подключение библиотеки
require("UAParser.php");

// Парсинг UA
$result = UA::parse();

// выводим информацию :)
print $result->full;  // -> Chrome 16.0.912/Mac OS X 10.6.8

print $result->browserFull;  // -> "Chrome 16.0.912"

print $result->browser;  // -> "Chrome"

print $result->version;  // -> "16.0.912"

print $result->major;  // -> 16 (minor, build, & revision также доступно)

print $result->osFull;  // -> "Mac OS X 10.6.8"

print $result->os;  // -> "Mac OS X"

print $result->osVersion;  // -> "10.6.8"

print $result->osMajor;  // -> 10 (osMinor, osBuild, & osRevision также доступно)

Определение User Agent на Python

# Импорт библиотеки
from ua_parser import user_agent_parser

# Парсинг user agent
user_agent_parser.Parse(request.META.get('HTTP_USER_AGENT'))

print result_dict['user_agent']
# {'major': '5', 'minor': '1', 'family': 'Mobile Safari', 'patch': None}

print result_dict['os']
# {'major': '5', 'patch_minor': None, 'minor': '1', 'family': 'iOS', 'patch': None}

print result_dict['device']
# {'is_spider': False, 'is_mobile': True, 'family': 'iPhone'}

Код в примерах прост для тех кто будет его использовать. Нет потребности разъяснять, использование данных user agent простое. Спасибо разработчику Тоби Лангелсу за столь удобную библиотеку.


Источник материала ...

Дальше: Может-ли плохое SEO убить ваш бизнес?


Дискуссия по теме     0 Комментариев
Добавить комментарий
Просмотров: 9319