我试图找出我的用户正在使用哪些浏览器,但遇到了问题。如果我尝试阅读标题“ User-Agent”,通常会给我很多文本,并且什么也没告诉我。例如,如果我使用Chrome浏览器访问网站,则在“ User-Agent”标题中有:
用户代理:“ Mozilla / 5.0(X11; Linux x86_64)AppleWebKit / 537.36(KHTML,例如Gecko)Chrome / 31.0.1650.57 Safari / 537.36”。
如您所见,尽管提到了Mozzila,Safari,Chrome等,但它什么也没告诉我。
我一直在使用的框架是Bottle(Python)。
任何帮助,将不胜感激,谢谢。
用户代理:“ Mozilla / 5.0(X11; Linux x86_64)AppleWebKit / 537.36(KHTML,例如Gecko)Chrome / 31.0.1650.57 Safari / 537.36”。
如您所见,尽管提到了Mozzila,Safari,Chrome等,但它什么也没告诉我。
您的上述结论是错误的。UA会告诉您许多内容,包括Web浏览器的类型和版本。
下面的文章解释为什么Mozilla和Safari存在于Chrome的UA。
您可以尝试在user-agent-string-db上对其进行手动分析。
有一个Python API。
from uasparser2 import UASparser
uas_parser = UASparser()
# Instead of fecthing data via network every time, you can cache the db in local
# uas_parser = UASparser('/path/to/your/cache/folder', mem_cache_size=1000)
# Updating data is simple: uas_parser.updateData()
result = ua_parser.parse('Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.57 Safari/537.36')
# result
{'os_company': u'',
'os_company_url': u'',
'os_family': u'Linux',
'os_icon': u'linux.png',
'os_name': u'Linux',
'os_url': u'http://en.wikipedia.org/wiki/Linux',
'typ': u'Browser',
'ua_company': u'Google Inc.',
'ua_company_url': u'http://www.google.com/',
'ua_family': u'Chrome',
'ua_icon': u'chrome.png',
'ua_info_url': u'http://user-agent-string.info/list-of-ua/browser-detail?browser=Chrome',
'ua_name': u'Chrome 31.0.1650.57',
'ua_url': u'http://www.google.com/chrome'}
Run Code Online (Sandbox Code Playgroud)
谢谢大家的回答,我发现了一些非常简单有效的方法。
从以下位置下载 httpagentparser 模块: https://pypi.python.org/pypi/httpagentparser
之后,只需将其导入到您的 pythong 程序中
import httpagentparser
Run Code Online (Sandbox Code Playgroud)
然后你可以编写一个像这样返回浏览器的函数,就像一个魅力:
def detectBrowser(request):
agent = request.environ.get('HTTP_USER_AGENT')
browser = httpagentparser.detect(agent)
if not browser:
browser = agent.split('/')[0]
else:
browser = browser['browser']['name']
return browser
Run Code Online (Sandbox Code Playgroud)
就是这样
| 归档时间: |
|
| 查看次数: |
3089 次 |
| 最近记录: |