Python UserAgent解析库——user_agents,判断手机等访问设备
文章目录
- 简介
- 安装
- 初试
- 判断访问设备
- 封装
- 随机生成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
参考文献
- 根据userAgent判断客户端是否手机、操作系统、浏览器等信息
- fake-useragent: up to date simple useragent faker with real world database
- 最新UserAgent——UserAgentString.com
- 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.
- Apple devices - Flat icons (PSD)
Python UserAgent解析库——user_agents,判断手机等访问设备相关推荐
- Python BS4解析库用法详解
Python BS4解析库用法详解 Beautiful Soup 简称 BS4(其中 4 表示版本号)是一个 Python 第三方库,它可以从 HTML 或 XML 文档中快速地提取指定的数据.Bea ...
- Python bs4解析库使用详解
今天继续给大家介绍Python 爬虫相关知识,本文主要内容是Python bs4解析库使用详解. 一.Python bs4库简介与安装 bs4是Python的一个第三方库,主要用于从HTML或者是XM ...
- Python爬虫 解析库的使用
已写章节 第一章 网络爬虫入门 第二章 基本库的使用 第三章 解析库的使用 第四章 数据存储 第五章 动态网页的抓取 文章目录 已写章节 第三章 解析库的使用 3.1BeautifulSoup 3.1 ...
- python pyquery_python3解析库pyquery
pyquery是一个类似jquery的python库,它实现能够在xml文档中进行jQuery查询,pyquery使用lxml解析器进行快速在xml和html文档上操作,它提供了和jQuery类似的语 ...
- Python网络解析库Xpath,妈妈再也不会担心我不会解析了
本文同步发表于我的微信公众号,扫一扫文章底部的二维码或在微信搜索 极客导航 即可关注,每个工作日都有文章更新. 一.概况 前两篇我们把网络库Requests大概的用法学了一遍,把网站上的每页数据请求下 ...
- php 插件判断手机版,laravel设备检测,区分手机端浏览器和pc端浏览器,隐藏或显示某些代码...
//根据判断结果加载不同blade模板 $isMobile = $this->isMobile(); if ($isMobile) { return view('home'); } else { ...
- python爬虫解析库(Xpath、beautiful soup、Jsonpath)
1. HTML解析 HTML的内容返回给浏览器,浏览器就会解析它,并对它渲染. HTML 超文本表示语言,设计的初衷就是为了超越普通文本,让文本表现力更强. XML 扩展标记语言,不是为了代替HTML ...
- python 网页解析库 beautifulsoup4 简介
HTML 文档本身是结构化的文本,有一定的规则,通过它的结构可以简化信息提取.于是,就有了lxml.pyquery.BeautifulSoup等网页信息提取库.一般我们会用这些库来提取网页信息.其中, ...
- python视频解析库_python某音短视频无水印解析
[Python] 纯文本查看 复制代码import requests import re import tkinter as tk #用户名: (.*?) #简介: (.*?) #封面:cover: ...
最新文章
- Learn OpenGL (十二):投光物
- JAVA核心技术I---JAVA基础知识(查漏补缺private,static)
- C#8.0可空引用类型的使用注意要点
- 分类与回归树(CART)相关知识
- 跳过17:30,跳过瑞星定时扫描
- Solve error: Cannot open include file: 'X11/Xlocale.h': No such file or directory
- SylixOS DNS浅析
- js如何判断一个数组中是否有重复的值
- matlab频谱分析_想知道有限精度对FFT的影响?Matlab仿真看看
- 记录一下,关于Instagram
- win10和ubuntu双系统下彻底删除ubuntu系统和grub引导
- 纯前端word导出echarts图表
- matlab 转换为相对湿度
- 工人物语5战役攻略_工人物语5_工人物语5专区_工人物语5下载_逗游网
- RecyclerView 官方分割线
- 【呆瓜学maven】Maven介绍(创建工程项目以及下载所需要的jar包)
- 特殊数字符号整理 - 圆圈数字
- OpenCV对矩阵进行padding操作
- php 报警声,php 报警 [NOTICE] fpm_children_bury()
- 2022全国节能宣传周 | 志翔科技大数据:支撑电企降碳、生活节能
热门文章
- 七、GLib主要的事件循环(The Main Event Loop)
- Lesson 12 Life on a desert island 内容鉴赏
- 一种光学指纹识别系统的设计方案
- TOGAF认证流程图
- 计算机网络安全管理的主要功能,网络安全管理有哪些功能
- 探索微观宇宙超级计算机系统,人类可以制造出计算机,为何却制造不出细胞?细胞是微观宇宙?...
- Python 爬虫-图片的爬取
- 中国联通移动用户11月净增55.4万户 累计2.98亿户
- 2022年10月深圳PMP®项目管理认证(精品班)招生简章
- matlab 定时器执行模式,Matlab在使用加速模式运行模型的时候,模型一直报错。...