文章目录

  • 简介
  • 安装
  • 初试
  • 判断访问设备
  • 封装
  • 随机生成User-Agent
  • 参考文献

本文代码下载

简介

user_agents 是Python的UserAgent解析库,通过解析浏览器或HTTP的UserAgent字符串,检测访问设备如手机、平板电脑及是否具备触摸能力。

安装

安装

pip install user-agents

初试

from user_agents import parse# iPhone的UserAgent
ua_string = 'Mozilla/5.0 (iPhone; CPU iPhone OS 5_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9B179 Safari/7534.48.3'
user_agent = parse(ua_string)# 浏览器属性
print(user_agent.browser)  # Browser(family='Mobile Safari', version=(5, 1), version_string='5.1')
print(user_agent.browser.family)  # 'Mobile Safari'
print(user_agent.browser.version)  # (5, 1)
print(user_agent.browser.version_string)  # '5.1'# 操作系统属性
print(user_agent.os)  # OperatingSystem(family=u'iOS', version=(5, 1), version_string='5.1')
print(user_agent.os.family)  # 'iOS'
print(user_agent.os.version)  # (5, 1)
print(user_agent.os.version_string)  # '5.1'# 设备属性
print(user_agent.device)  # Device(family=u'iPhone', brand=u'Apple', model=u'iPhone')
print(user_agent.device.family)  # 'iPhone'
print(user_agent.device.brand)  # 'Apple'
print(user_agent.device.model)  # 'iPhone'# 美观的字符串版本
print(str(user_agent))  # "iPhone / iOS 5.1 / Mobile Safari 5.1"

判断访问设备

  • is_mobile: 是否手机 (iPhone、Android、Blackberry、Windows Phone等)
  • is_tablet: 是否平板 (iPad、Kindle、Nexus等)
  • is_pc: 是否传统桌面操作系统 (Windows、OS X、Linux)
  • is_touch_capable: 是否有触摸功能
  • is_bot: 是否搜索引擎爬虫
from user_agents import parse# 无触摸功能的黑莓设备
ua_string = 'BlackBerry9700/5.0.0.862 Profile/MIDP-2.1 Configuration/CLDC-1.1 VendorID/331 UNTRUSTED/1.0 3gpp-gba'
user_agent = parse(ua_string)
print(user_agent.is_mobile)  # True
print(user_agent.is_tablet)  # False
print(user_agent.is_touch_capable)  # False
print(user_agent.is_pc)  # False
print(user_agent.is_bot)  # False
print(str(user_agent))  # "BlackBerry 9700 / BlackBerry OS 5 / BlackBerry 9700"# 三星Galaxy S3
ua_string = 'Mozilla/5.0 (Linux; U; Android 4.0.4; en-gb; GT-I9300 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'
user_agent = parse(ua_string)
print(user_agent.is_mobile)  # True
print(user_agent.is_tablet)  # False
print(user_agent.is_touch_capable)  # True
print(user_agent.is_pc)  # False
print(user_agent.is_bot)  # False
print(str(user_agent))  # "Samsung GT-I9300 / Android 4.0.4 / Android 4.0.4"# iPad
ua_string = 'Mozilla/5.0(iPad; U; CPU iPhone OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B314 Safari/531.21.10'
user_agent = parse(ua_string)
print(user_agent.is_mobile)  # False
print(user_agent.is_tablet)  # True
print(user_agent.is_touch_capable)  # True
print(user_agent.is_pc)  # False
print(user_agent.is_bot)  # False
print(str(user_agent))  # "iPad / iOS 3.2 / Mobile Safari 4.0.4"# Kindle
ua_string = 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_3; en-us; Silk/1.1.0-80) AppleWebKit/533.16 (KHTML, like Gecko) Version/5.0 Safari/533.16 Silk-Accelerated=true'
user_agent = parse(ua_string)
print(user_agent.is_mobile)  # False
print(user_agent.is_tablet)  # True
print(user_agent.is_touch_capable)  # True
print(user_agent.is_pc)  # False
print(user_agent.is_bot)  # False
print(str(user_agent))  # "Kindle / Android / Amazon Silk 1.1.0-80"# 带触摸功能的Windows 8设备
ua_string = 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0; Touch)'
user_agent = parse(ua_string)
print(user_agent.is_mobile)  # False
print(user_agent.is_tablet)  # False
print(user_agent.is_touch_capable)  # True
print(user_agent.is_pc)  # True
print(user_agent.is_bot)  # False
print(str(user_agent))  # "PC / Windows 8 / IE 10"

封装

判断手机、平板电脑、PC

import user_agentsdef ismobile(ua_string):'''是否手机:param ua_string: UserAgent字符串:return: True or False>>> ismobile('BlackBerry9700/5.0.0.862 Profile/MIDP-2.1 Configuration/CLDC-1.1 VendorID/331 UNTRUSTED/1.0 3gpp-gba')True>>> ismobile('Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0; Touch)')False'''return user_agents.parse(ua_string).is_mobiledef istablet(ua_string):'''是否平板:param ua_string: UserAgent字符串:return: True or False>>> istablet('Mozilla/5.0(iPad; U; CPU iPhone OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B314 Safari/531.21.10')True>>> istablet('Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0; Touch)')False'''return user_agents.parse(ua_string).is_tabletdef ispc(ua_string):'''是否PC:param ua_string: UserAgent字符串:return: True or False>>> ispc('Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0; Touch)')True>>> ispc('BlackBerry9700/5.0.0.862 Profile/MIDP-2.1 Configuration/CLDC-1.1 VendorID/331 UNTRUSTED/1.0 3gpp-gba')False'''return user_agents.parse(ua_string).is_pc

随机生成User-Agent

安装

pip install fake-useragent

代码

from fake_useragent import UserAgentua = UserAgent()print(ua.ie)
print(ua.msie)
print(ua['Internet Explorer'])
print(ua.opera)
print(ua.chrome)
print(ua.google)
print(ua['google chrome'])
print(ua.firefox)
print(ua.ff)
print(ua.safari)print(ua.random)

推荐阅读:fake-useragent

参考文献

  1. 根据userAgent判断客户端是否手机、操作系统、浏览器等信息
  2. fake-useragent: up to date simple useragent faker with real world database
  3. 最新UserAgent——UserAgentString.com
  4. python-user-agents: A Python library that provides an easy way to identify devices like mobile phones, tablets and their capabilities by parsing (browser) user agent strings.
  5. Apple devices - Flat icons (PSD)

Python UserAgent解析库——user_agents,判断手机等访问设备相关推荐

  1. Python BS4解析库用法详解

    Python BS4解析库用法详解 Beautiful Soup 简称 BS4(其中 4 表示版本号)是一个 Python 第三方库,它可以从 HTML 或 XML 文档中快速地提取指定的数据.Bea ...

  2. Python bs4解析库使用详解

    今天继续给大家介绍Python 爬虫相关知识,本文主要内容是Python bs4解析库使用详解. 一.Python bs4库简介与安装 bs4是Python的一个第三方库,主要用于从HTML或者是XM ...

  3. Python爬虫 解析库的使用

    已写章节 第一章 网络爬虫入门 第二章 基本库的使用 第三章 解析库的使用 第四章 数据存储 第五章 动态网页的抓取 文章目录 已写章节 第三章 解析库的使用 3.1BeautifulSoup 3.1 ...

  4. python pyquery_python3解析库pyquery

    pyquery是一个类似jquery的python库,它实现能够在xml文档中进行jQuery查询,pyquery使用lxml解析器进行快速在xml和html文档上操作,它提供了和jQuery类似的语 ...

  5. Python网络解析库Xpath,妈妈再也不会担心我不会解析了

    本文同步发表于我的微信公众号,扫一扫文章底部的二维码或在微信搜索 极客导航 即可关注,每个工作日都有文章更新. 一.概况 前两篇我们把网络库Requests大概的用法学了一遍,把网站上的每页数据请求下 ...

  6. php 插件判断手机版,laravel设备检测,区分手机端浏览器和pc端浏览器,隐藏或显示某些代码...

    //根据判断结果加载不同blade模板 $isMobile = $this->isMobile(); if ($isMobile) { return view('home'); } else { ...

  7. python爬虫解析库(Xpath、beautiful soup、Jsonpath)

    1. HTML解析 HTML的内容返回给浏览器,浏览器就会解析它,并对它渲染. HTML 超文本表示语言,设计的初衷就是为了超越普通文本,让文本表现力更强. XML 扩展标记语言,不是为了代替HTML ...

  8. python 网页解析库 beautifulsoup4 简介

    HTML 文档本身是结构化的文本,有一定的规则,通过它的结构可以简化信息提取.于是,就有了lxml.pyquery.BeautifulSoup等网页信息提取库.一般我们会用这些库来提取网页信息.其中, ...

  9. python视频解析库_python某音短视频无水印解析

    [Python] 纯文本查看 复制代码import requests import re import tkinter as tk #用户名: (.*?) #简介: (.*?) #封面:cover: ...

最新文章

  1. Learn OpenGL (十二):投光物
  2. JAVA核心技术I---JAVA基础知识(查漏补缺private,static)
  3. C#8.0可空引用类型的使用注意要点
  4. 分类与回归树(CART)相关知识
  5. 跳过17:30,跳过瑞星定时扫描
  6. Solve error: Cannot open include file: 'X11/Xlocale.h': No such file or directory
  7. SylixOS DNS浅析
  8. js如何判断一个数组中是否有重复的值
  9. matlab频谱分析_想知道有限精度对FFT的影响?Matlab仿真看看
  10. 记录一下,关于Instagram
  11. win10和ubuntu双系统下彻底删除ubuntu系统和grub引导
  12. 纯前端word导出echarts图表
  13. matlab 转换为相对湿度
  14. 工人物语5战役攻略_工人物语5_工人物语5专区_工人物语5下载_逗游网
  15. RecyclerView 官方分割线
  16. 【呆瓜学maven】Maven介绍(创建工程项目以及下载所需要的jar包)
  17. 特殊数字符号整理 - 圆圈数字
  18. OpenCV对矩阵进行padding操作
  19. php 报警声,php 报警 [NOTICE] fpm_children_bury()
  20. 2022全国节能宣传周 | 志翔科技大数据:支撑电企降碳、生活节能

热门文章

  1. 七、GLib主要的事件循环(The Main Event Loop)
  2. Lesson 12 Life on a desert island 内容鉴赏
  3. 一种光学指纹识别系统的设计方案
  4. TOGAF认证流程图
  5. 计算机网络安全管理的主要功能,网络安全管理有哪些功能
  6. 探索微观宇宙超级计算机系统,人类可以制造出计算机,为何却制造不出细胞?细胞是微观宇宙?...
  7. Python 爬虫-图片的爬取
  8. 中国联通移动用户11月净增55.4万户 累计2.98亿户
  9. 2022年10月深圳PMP®项目管理认证(精品班)招生简章
  10. matlab 定时器执行模式,Matlab在使用加速模式运行模型的时候,模型一直报错。...