python:user_agents 一个解析(浏览器/HTTP)用户代理的库

user_agents是一个Python库,通过解析(浏览器/HTTP)用户代理字符串,提供了一种简单的方法来识别/检测设备。user_agents依赖于优秀的ua-parser对原始用户代理字符串进行实际解析。

安装

C:\Users\lifeng01>pip install pyyaml ua-parser user-agents
Requirement already satisfied: pyyaml in d:\python\python37\lib\site-packages (3.10)
Collecting ua-parser
  Downloading ua_parser-0.10.0-py2.py3-none-any.whl (35 kB)
Collecting user-agents
  Downloading user_agents-2.2.0-py3-none-any.whl (9.6 kB)
Installing collected packages: ua-parser, user-agents
Successfully installed ua-parser-0.10.0 user-agents-2.2.0

基本使用

from user_agents import parse

user_string = "Mozilla/5.0 (Windows NT 6.2; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36"
user_agent = parse(user_string)


# 访问用户代理的浏览器属性
print(user_agent.browser)
print(user_agent.browser.family)
print(user_agent.browser.version)
print(user_agent.browser.version_string)


# 访问用户代理的操作系统属性
print(user_agent.os)
print(user_agent.os.family)
print(user_agent.os.version)
print(user_agent.os.version_string)


# 访问用户代理的设备属性
print(user_agent.device)
print(user_agent.device.family)
print(user_agent.device.brand)
print(user_agent.device.model)


# 查看一个漂亮的字符串版本
print(str(user_agent))


# 运行结果
Browser(family='Chrome', version=(92, 0, 4515), version_string='92.0.4515')
Chrome
(92, 0, 4515)
92.0.4515
OperatingSystem(family='Windows', version=(8,), version_string='8')
Windows
(8,)
8
Device(family='Other', brand=None, model=None)
Other
None
None
PC / Windows 8 / Chrome 92.0.4515

Process finished with exit code 0

复杂使用

user_agents还暴露了其他一些更“复杂”的属性,这些属性是从上面定义的一个或多个基本属性派生出来的。就目前而言,这些属性应该能够正确识别流行的平台/设备,支持较小的平台/设备的请求。

目前支持这些属性:

  • is_pc:用户代理是否被识别为设备设备
  • is_bot:用户代理是否为搜索引擎爬虫/爬行器
  • is_mobile:用户代理是否被识别为手机设备
  • is_tablet:用户代理是否被识别为平板设备
  • is_touch_capable:用户代理是否有触摸功能
  • is_email_client:用户代理是否被识别为邮件客户端
from user_agents import parse

user_string = "Mozilla/5.0 (Windows NT 6.2; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36"
user_agent = parse(user_string)

print(user_agent.is_pc)
print(user_agent.is_bot)
print(user_agent.is_mobile)
print(user_agent.is_tablet)
print(user_agent.is_touch_capable)
print(user_agent.is_email_client)

# 运行结果
True
False
False
False
False
False

Process finished with exit code 0

运行测试

这个运行是使用的unittest框架,编写测试用例进行运行的,只要熟悉python接口自动化或者单元测试的都会使用

import unittest
from user_agents import parse


class TestUserAgents(unittest.TestCase):


    def test_user_agents(self):
        user_string = "Mozilla/5.0 (Windows NT 6.2; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36"
        user_agent = parse(user_string)

        print(user_agent.is_pc)
        print(user_agent.is_bot)
        print(user_agent.is_mobile)
        print(user_agent.is_tablet)
        print(user_agent.is_touch_capable)
        print(user_agent.is_email_client)

if __name__ == '__main__':
    unittest.main()

这里可直鼠标右击运行,也可以使用命令运行,命令运行是:python -m unittest discover;运行结果如下:

PS D:\pythonProject\runUserAgents> python -m unittest discover
True
False
False
False
False
False
.
----------------------------------------------------------------------
Ran 1 test in 0.006s

OK

以上总结或许能帮助到你,或许帮助不到你,但还是希望能帮助到你,如有疑问、歧义,直接私信留言会及时修正发布;非常期待你的点赞和分享哟,谢谢!

未完,待续…

一直都在努力,希望您也是!

更多内容欢迎关注公众号
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值