一个函数,它接受一个用户代理字符串(可选的Sec-CH-UA和Sec-CH-UA-Platform头信息),并返回其对浏览器名称、版本和平台的最佳猜测。
项目描述
一个Python函数,它接受一个用户代理字符串(可选的Sec-CH-UA和Sec-CH-UA-Platform头信息)并返回其对浏览器名称、版本和平台的最佳猜测。
动机
我想让用户知道他们登录的所有设备,并且希望显示的信息尽可能准确。
在寻找解决方案的过程中,我了解到仅使用用户代理字符串是不够的,仅使用客户端提示也不够。
为什么仅使用用户代理字符串是不够的?
有时浏览器会在其Sec-CH-UA头中标识自己,但不在用户代理字符串中。Brave就是这样一个例子(iOS版本除外,它不发送Sec-CH-UA或Sec-CH-UA-Platform头)。
为什么仅使用客户端提示是不够的?
有时,浏览器在其用户代理字符串中标识自己,但不在其Sec-CH-UA头中标识。Ecosia的Android版本就是这种情况的例子(其Sec-CH-UA头表示它是Chromium)。此外,一些浏览器不发送Sec-CH-UA或Sec-CH-UA-Platform头。
安装
pip install identify_browser
使用
from identify_browser import identify_browser
# These values could come from anywhere. For example, in Django, they could come from:
#
# request.headers.get("User-Agent", "")
# request.headers.get("Sec-Ch-Ua", "")
# request.headers.get("Sec-Ch-Ua-Platform", "")
user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36"
sec_ch_ua = '"Not/A)Brand";v="8", "Chromium";v="126", "Brave";v="126"'
sec_ch_ua_platform = '"Windows"'
browser_identity = identify_browser(user_agent, sec_ch_ua, sec_ch_ua_platform)
print(f"You appear to be using {browser_identity['name']} {browser_identity['version']} on {browser_identity['platform']}")
# Output: You appear to be using Brave 126 on Windows
项目详情
关闭
identify_browser-1.0.0.tar.gz 的散列值
算法 | 散列摘要 | |
---|---|---|
SHA256 | 2e727dd7602970150062d6d29d3f9415c65cd70d11c020e2a81daebcc303e971 |
|
MD5 | 46164ce1958ef0b4e4bc32366f98186f |
|
BLAKE2b-256 | 1ae1435a3ca1364816712257f5f81f32b8c517bece2f0c9a7bddaf5fc1a5c61f |
关闭
identify_browser-1.0.0-py3-none-any.whl 的散列值
算法 | 散列摘要 | |
---|---|---|
SHA256 | 757da2ad2490a565efd352f32f3ad1f1b276d69cc6f880700638fb7038265277 |
|
MD5 | 4bdca2f44a103c893710faffd6265ef6 |
|
BLAKE2b-256 | 22b6d47126872ce7649cb30f5f3f283f8e8a222565c8be312e6d6aff4d62ae89 |