如何在Python中使用正则表达式检测用户代理中的iPad/iPhone WebView?

0 投票
2 回答
1581 浏览
提问于 2025-04-18 00:43

我只需要把下面的Javascript正则表达式测试转换成Python代码:

var is_ios_app = /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(navigator.userAgent);

2 个回答

1

有一个Python库可以用来实现这个目的。

https://pypi.python.org/pypi/httpagentparser

使用示例:

>>> import httpagentparser
>>> s = "Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/532.9 (KHTML, like Gecko) \
        Chrome/5.0.307.11 Safari/532.9"
>>> print httpagentparser.detect(s)
{'dist': {'version': '2.3.5', 'name': 'Android'},
'os': {'name': 'Linux'},
'browser': {'version': '4.0', 'name': 'Safari'}}

所以你可以使用dist中的name元素来获取iOS用户。

0

在Python中,可以使用 re.search() 来实现这个功能。

userAgent = "YOUR_UA"
pattern = '(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)'
if(re.search(pattern, userAgent)):
    print "true"

撰写回答