ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Python Regex解析android用户代理设备名称

2019-06-30 22:44:01  阅读:268  来源: 互联网

标签:python regex parsing user-agent


我正在使用Python 2.5解析Android用户代理,到目前为止,我已经能够找出适用于收集主要和次要版本的“大多数”Android用户代理的正则表达式.

(?P<browser>Android) (?P<major_version>\d*).(?P<minor_version>\d*)

上面的正则表达式适用于以下示例:

Mozilla/5.0 (Linux; U; Android 2.2; en-gb; Nexus One Build/FRF50) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1

但是,我想获得这种类型的Android设备.我在android用户代理中看到了一个常见的模式,用于查找设备名称的位置:http://www.botsvsbrowsers.com/category/6/index.html

基本上它似乎总是在语言之后,例如“en-gb;”在“Build /”之前

那么我应该如何修改我的正则表达式,以便在上面的例子中我能够解析出“Nexus One”.

另一个Android用户代理示例是:

Mozilla/5.0 (Linux; U; Android 2.1; en-us; HTC Legend Build/cupcake) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17

在上面的例子中,我希望获得“HTC Legend”

解决方法:

试试这个:

(?P<browser>Android) (?P<major_version>\d*)\.(?P<minor_version>\d*);[^;]*;(?P<device>[ \w]+) Build\/

标签:python,regex,parsing,user-agent
来源: https://codeday.me/bug/20190630/1340849.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有