我是靠谱客的博主 年轻时光,这篇文章主要介绍python:user_agents 一个解析(浏览器/HTTP)用户代理的库,现在分享给大家,希望可以做个参考。

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

安装

复制代码
1
2
3
4
5
6
7
8
9
C:Userslifeng01>pip install pyyaml ua-parser user-agents Requirement already satisfied: pyyaml in d:pythonpython37libsite-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

基本使用

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
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:用户代理是否被识别为邮件客户端
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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接口自动化或者单元测试的都会使用

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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;运行结果如下:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
PS D:pythonProjectrunUserAgents> python -m unittest discover True False False False False False . ---------------------------------------------------------------------- Ran 1 test in 0.006s OK

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

未完,待续…

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

更多内容欢迎关注公众号

最后

以上就是年轻时光最近收集整理的关于python:user_agents 一个解析(浏览器/HTTP)用户代理的库的全部内容,更多相关python:user_agents内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(62)

评论列表共有 0 条评论

立即
投稿
返回
顶部