Python Regex解析android用户代理设备名称
作者:互联网
我正在使用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