web-dev-qa-db-fra.com

Analyse de la chaîne de l'agent utilisateur HTTP

Quelle est la meilleure méthode pour analyser une chaîne User-Agent dans Python pour détecter de manière fiable

  1. Navigateur
  2. Version du navigateur
  3. OS

Ou peut-être n'importe quelle bibliothèque d'aide qui le fait

49
Shekhar

Répondre à ma propre question;)

Enfin, j'ai décidé de suivre la suggestion n ° 1, c'est-à-dire d'écrire la vôtre. Et je suis content du résultat. N'hésitez pas à utiliser/modifier/m'envoyer un patch, etc.

C'est ici -> http://pypi.python.org/pypi/httpagentparser

67
Shekhar

ASparser pour Python par Hicro Kee. Fichier de données et cache mis à jour automatiquement à partir du serveur distant avec vérification de version.

10
Jar

Werkzeug a intégré l'analyse utilisateur-agent.

Nouveau lien (juin 2018) http://werkzeug.pocoo.org/docs/0.14/utils/#module-werkzeug.useragents

8
Joshua Olson

Après avoir exécuté ces suggestions contre le corpus complet des agents utilisateurs de Firefox , j'ai trouvé que l'analyse de numéro de version à des fins de comparaison est assez mauvaise.

Si c'est ce dont vous avez besoin, je vous suggère de jeter un œil à Aparser , qui faisait partie du projet Browserscope . Documentation ici.

6
James Broadhead

Les autres réponses à cette question sont maintenant assez anciennes. Je crois que la nouvelle norme dans l'analyse de l'agent utilisateur du navigateur est celle de Browserscope analyseur de l'agent utilisateur .

Aussi disponible avec les mêmes motifs de correspondance dans beaucoup d'autres langues . Un jour, vous pouvez également analyser certaines chaînes UA en JavaScript et vous n'avez pas à vous soucier d'une analyse incohérente.

6
Chris W.

Th Browser Cap Parser devrait fonctionner. Cela peut être un peu lent cependant ..

3
Chirayu Patel

Cependant, si vous souhaitez analyser tout cela du côté Python vous pouvez utiliser les fichiers XML/INI fournis à http://browsers.garykeith.com/downloads.asp = pour effectuer des recherches sur l'agent utilisateur. C'est le même fichier que celui utilisé dans la fonction get_browser () de php.

2
NerdyNick