Каков наилучший способ разбора строки User-Agent в Python, чтобы надежно обнаруживатьСинтаксический HTTP User-Agent строка
- Browser
- Версия браузера
- OS
Или, возможно, любая вспомогательная библиотека, которая делает это
Каков наилучший способ разбора строки User-Agent в Python, чтобы надежно обнаруживатьСинтаксический HTTP User-Agent строка
Или, возможно, любая вспомогательная библиотека, которая делает это
Отвечая на мой собственный вопрос;)
Наконец я решил пойти на внушение # 1, т.е. написать свой собственный. И я доволен результатом. Пожалуйста, не стесняйтесь использовать/изменить/отправить мне пропатчить и т.д.
Это здесь ->http://pypi.python.org/pypi/httpagentparser
Это не работает особенно хорошо для мобильных телефонов. В частности, ежевика не обнаружена. (хотя вы получили мой +1 для его написания!) –
@ Джейсон Сундрам Если вы поможете, предоставив строки оператора и ожидаемые результаты, можно поддерживать ежевику, другие. Проверьте https://github.com/shon/httpagentparser/issues – Shekhar
Мне было интересно сравнить, но это справедливая точка. Убирались. –
Однако, если вы хотите разобрать все это на стороне Python, вы можете использовать XML/INI файлы, предоставленные в http://browsers.garykeith.com/downloads.asp, чтобы выполнять поиск в пользовательском агенте. Это тот же файл, который используется в функции get_browser() php.
Th Browser Cap Parser должен работать. Это может быть немного медленно, хотя ..
UASparser for Python по Hicro Kee. Автоматический обновленный файл данных и кеш с удаленного сервера с проверкой версий.
Я бы порекомендовал UA Parser тоже. – Dexter
Запустив эти предложения против the full corpus of Firefox User Agents, я обнаружил, что синтаксический анализ версии версии для сравнения довольно низок.
Если это то, что вам нужно, я предлагаю вам взглянуть на UAparser, который раньше был частью проекта browserscope. Documentation here.
Я думаю, что в этой репо больше текущей версии: https://github.com/tobie/ua-parser – mbarkhau
Werkzeug имеет встроенный пользовательский агент.
http://werkzeug.pocoo.org/docs/0.10/utils/#module-werkzeug.useragents
Интересно. Я быстро проверил код. Это действительно простой, приятный код, по существу, ряд регулярных выражений для сопоставления с строкой агента. Интересно, как это будет выглядеть. Одной из плюсов Werkzeug является то, что он также определяет язык, а преимущество httpagentparaser заключается в том, что он также определяет версию os. – Shekhar
ссылка отсутствует, необходимо обновить – Siddharth
Другие ответы на этот вопрос довольно стар. Я считаю, что новый стандарт в анализе User Agent Browsercope - это .
Также удобно доступен с точно такие же соответствия моделей в many other languages. Когда-нибудь вы захотите также проанализировать некоторые строки UA в JavaScript, и вам не нужно беспокоиться о непоследовательном разборе.
Подробнее, в зависимости от браузера Операционные системы и версии для обнаружения возможностей не являются хорошей стратегией. Какую проблему ты пытаешься решить? –
У нас есть простая форма репортера билетов для нашего веб-приложения. И мы часто спрашиваем пользователей о том, что такое broswer/OS и т. Д. Поэтому мы можем просто обнаружить его заранее и попросить пользователя подтвердить. Ну, если это не так тривиально, мы просто сбросим пользовательского агента, но все равно нужно задавать вопросы, так как пользователь может использовать другой браузер для отправки билета. – Shekhar
Возможно, вы захотите, чтобы Python отображал форму и использовал Javascript для изменения значений поля ввода для значений текущей ОС и того, что еще вы пожелаете. – NerdyNick