假用户
使用现实世界数据库的最新简单的用户伪造。
特征
- 数据已预载并从Intoli LLC进行后处理,数据是软件包本身的一部分
- 数据由各种浏览器和各种浏览器组成
- 检索用户代理字符串(类型:桌面,平板电脑和/或移动UAS)
- 检索用户代理Python字典(又称对象),具有诸如UserAgent,百分比,type,device_brand,browser,browser_version,os,OS,OS_Version和Platform之类的字段
- 支持Python 3.9或更高
安装
pip install fake-useragent
或者,如果您安装了多个Python / pip版本,请使用pip3:
pip3 install fake-useragent
用法
下面的简单用法示例,另请参见此REDME的下一章有关更多高级用法:
from fake_useragent import UserAgent ua = UserAgent () # Get a random browser user-agent string print ( ua . random ) # Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0 # Or get user-agent string from a specific browser print ( ua . chrome ) # Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 print ( ua . google ) # Mozilla/5.0 (iPhone; CPU iPhone OS 18_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) GSA/343.0.695551749 Mobile/15E148 Safari/604.1 print ( ua [ \'Chrome\' ]) # Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 print ( ua . firefox ) # Mozilla/5.0 (Android 14; Mobile; rv:133.0) Gecko/133.0 Firefox/133.0 print ( ua . ff ) # Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:132.0) Gecko/20100101 Firefox/132.0 print ( ua . safari ) # Mozilla/5.0 (iPhone; CPU iPhone OS 17_6_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.6 Mobile/15E148 Safari/604.1 Ddg/17.6 print ( ua . opera ) # Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36 OPR/114.0.0.0 print ( ua . edge ) # Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36 Edg/125.0.0.0
其他用法
自v1.2.0以来,假播种的其他功能现在提供。
If you want to specify your own browser list, you can do that via the browsers argument (default is: [\”Google\”, \”Chrome\”, \”Firefox\”, \”Edge\”, \”Opera\”, \”Safari\”, \”Android\”, \”Yandex Browser\”, \”Samsung Internet\”, \”Opera Mobile\”, \”Mobile Safari\”, \”Firefox Mobile\”, \”Firefox iOS\”, \”Chrome Mobile\”, \”Chrome移动iOS”,“移动Safari UI/wkwebview”,“ Edge Mobile”,“ DuckDuckgo Mobile”,“ Miuibrowser”,“ Whale”,“ Twitter”,“ Twitter”,“ Facebook”,“ Amazon Silk”])。
此示例只会从Edge和Chrome返回随机用户代理:
from fake_useragent import UserAgent ua = UserAgent ( browsers = [ \'Edge\' , \'Chrome\' ]) ua . random
注意:关于浏览器的伪造者代理:Chrome,Edge,Firefox,Safari,Opera,Android,Opera Mobile,Mobile Safari,Firefox Mobile,Firefox iOS,Chrome Mobile,Chrome Mobile,Chrome Mobile iOS等(请参阅上面的完整列表)。
注意#2:由于Fakeuser-Agent v2.0.0浏览器名称对案例敏感!
如果要指定自己的操作系统,可以通过OS参数执行此操作(默认值为:[“ Windows”,“ Linux”,“ Ubuntu”,“ Chrome OS”,“ Mac OS X”,“ Android”,“ ios”])。
在此示例中,您只会恢复Linux用户代理:
from fake_useragent import UserAgent ua = UserAgent ( os = \'Linux\' ) ua . random
注意:由于Fakeuser-Agent v2.0.0 OS名称对案例敏感!
您还可以指定要使用的平台类型,可以通过平台参数来执行此操作(默认为[桌面“,“移动”,“平板电脑”))。此示例只会从移动设备返回随机用户代理:
from fake_useragent import UserAgent ua = UserAgent ( platforms = \'mobile\' ) ua . random
以及台式设备的随机用户代理:
from fake_useragent import UserAgent ua = UserAgent ( platforms = \'desktop\' ) ua . random
如果要返回更多最新的用户代理字符串,则可以使用min_version参数(默认值为:0.0,这意味着所有用户代理都将匹配)。
在此示例中,您仅获得具有最低版本的120.0:
from fake_useragent import UserAgent ua = UserAgent ( min_version = 120.0 ) ua . random
对于向后兼容性,仍然可以使用Min_percentage参数指定最小使用百分比。但是,当前的用户代理列表不包含此统计数据。因此,所有用户代理都将匹配。
提示:您可以将所有这些论点结合给您喜欢!
用户代理Python词典
由于版本1.3.0,我们现在还为您提供以下“获取”属性,这些属性返回了UA的整个Python字典,而不仅仅是用户代理字符串:
警告RAW JSON对象(在Python词典中)被“原样”返回。意思是,这种数据结构将来可能会发生变化!
请注意,以下这些“获取”属性可能不会在将来返回相同的键/值对。如果要使用稳定的接口,请使用上述UA.random或类似的方法。
from fake_useragent import UserAgent ua = UserAgent () # Random user-agent dictionary (object) ua . getRandom # {\'percent\': 0.8, \'useragent\': \'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36 Edg/116.0.1938.76\', \'system\': \'Edge 116.0 Win10\', \'browser\': \'edge\', \'version\': 116.0, \'os\': \'win10\'} # More get properties: ua . getFirefox # {\'percent\': 0.3, \'useragent\': \'Mozilla/5.0 (Windows NT 10.0; rv:109.0) Gecko/20100101 Firefox/118.0\', \'system\': \'Firefox 118.0 Win10\', \'browser\': \'firefox\', \'version\': 118.0, \'os\': \'win10\'} ua . getChrome ua . getSafari ua . getEdge # And a method with an argument. # This is exactly the same as using: ua.getFirefox ua . getBrowser ( \'firefox\' )
笔记
您可以使用后备参数覆盖后备字符串,在极少数情况下有些失败:
from fake_useragent import UserAgent ua = UserAgent ( fallback = \'your favorite Browser\' ) # in case if something went wrong, one more time it is REALLY!!! rare case ua . random == \'your favorite Browser\'
如果您尝试获取未知的浏览器:
from fake_useragent import UserAgent ua = UserAgent () print ( ua . unknown ) #Error occurred during getting browser: randm, but was suppressed with fallback. #Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36 Edg/122.0.0.0
如果您需要通过__getAttr__方法来安全地将某些属性覆盖在Useragent中,则可以使用Safe_attrs,您可以将其传递到其中的属性名称。至少这将阻止您在找不到属性时提出假司令。
例如,使用伪造的用户注射<https://gi*thub*.co*m/tailhook/injections>您需要:
from fake_useragent import UserAgent ua = UserAgent ( safe_attrs = ( \'__injections__\' ,))
请,如果您不明白为什么需要这个,请不要使用。这对于极端极端情况来说是魔术。
遇到问题?
确保您使用最新版本!
pip install --upgrade fake-useragent
或者,如果不起作用,请尝试安装这样的最新软件包版本(2.0.3是一个示例,请检查PYPI上最新版本的内容):
pip install fake-useragent==2.0.3
通过Python控制台检查版本:
import fake_useragent print ( fake_useragent . __version__ )
而且,您总是欢迎您来发布问题。
请不要忘记提及您正在使用的版本。
对于开发人员
用户代理数据
我们从user-Adent.net中检索的用户代理数据。数据以JSONLINE格式存储。文件位于:SRC/Fake_useragent/Data Directory中。
数据JSON文件是Python软件包的一部分,请参见pyproject.toml。阅读有关数据文件支持的更多信息。
Python虚拟环境
我们鼓励在安装PIP软件包之前使用Python虚拟环境,例如:
python -m virtualenv env source env/bin/activate
本地安装
pip install -e .
测试
pip install -r requirements.txt tox
覆盖
使用ruff修复进口:
pip install -r requirements.txt ruff check --select= \" I \" --fix .
修复黑色代码格式错误:
pip install -r requirements.txt
black .
注意:当Ruff V1.0发行时,我们很可能完全朝着Ruff而不是黑色移动。
ChangElog
-
2.2.0 2025年4月14日
- 更新的用户代理文件(JSONL)
- 更新的依赖项
- Python 3.8支持被正式放弃
- python 3.13添加了支持
- 改进的pyproject.toml文件
-
2.1.0 2025年3月12日
- 加快UA转换器脚本并通过Cronjob添加到工作流程
- 倾倒依赖版本
- 更新的用户代理文件(JSONB)
- 默认情况下(用于IDE)改善了安全atter检查器并添加形状为安全attr。
-
2.0.2&2.0.3 2024年12月10日
- 修复项目依赖项TOML文件和同步文档
-
2024年12月7日2.0.1(我的生日)
- 添加需要Python到TOML配置
-
2.0.0 2024年12月4日
- 切换到新的数据源(再次再次)
- 可能的浏览器选项:“ Google”,“ Chrome”,“ Firefox”,“ Edge”,“ Opera”,“ Safari”,“ Safari”,“ Android”,“ Yandex浏览器”,“ Samsung Internet”,“ Opera Mobile”,“移动Safari”,“ Mobile Safari”,“ Mobile Safari”,“ Firefox Mobile”,“ Firefox Mobile”,“ Firefox ios”,“ Firefox Ios”,“ Firefox ios”,“ firefox ios”,“ chrome” chrome Mobile\’s expect\’greom of mobile\’exie iece ofim\’exie\’移动”,“ DuckDuckgo Mobile”,“ Miuibrowser”,“ Whale”,“ Twitter”,“ Facebook”,“ Amazon Silk”
- 可能的OS选项:“ Windows”,“ Linux”,“ Ubuntu”,“ Chrome OS”,“ Mac OS X”,“ Android”,“ ios”
- 可能的类型选项:“桌面”,“移动”,“平板电脑”
- 更新Fake.py来处理新的数据键/值对象
- 更新了读书文件
- 重命名为浏览器。和其他重构。
-
1.5.1 2024年3月16日
- 删除用户代理字符串中的后路空间
-
1.5.0 2024年3月8日
- 迁移到新的用户代理数据源(感谢@boudewijnzwart),向后兼容API。
- 将所有PIP软件包依赖项更新为最新稳定版本
-
1.4.0 2023年11月24日
- 更新所有PIP软件包
- 支持Python 3.12(感谢@vladkens)
- 修复缓存刮刀中的软件包冲突
- 改善ruff cli呼叫
-
1.3.0 2023年10月2日
- 引入新的ua.getrandom,ua.getFirefox,ua.getChrome,ua.getSafari。和一个通用方法:ua.getBrowser(..)(例如getBrowser(\’firefox\’))
- 上面的这些新属性使您可以检索整个原始Python字典,而不仅仅是UA字符串。
- 这些属性将来可能会返回不同的密钥/值对!
- 修复OS参数“ Windows”以检查两个Win10和Win7值(以前仅在Win10上检查),从而返回更多UAS
- 改进了用户代理刮刀(现在还包含Safari浏览器)
- 更新浏览器。JSON数据文件
- 引入新的ua.getrandom,ua.getFirefox,ua.getChrome,ua.getSafari。和一个通用方法:ua.getBrowser(..)(例如getBrowser(\’firefox\’))
-
1.2.1 2023年8月2日
- Min_percentage检查的小改进
- 更新所有PIP软件包依赖项
-
1.2.0 2023年8月2日
- 更新浏览器用户数据
- 允许在浏览器,操作系统和使用百分比上过滤器
- 更新缓存刮板以探讨用户代理字符串的新数据源
- 调整代码以使用新的JSON数据格式
- 参数use_external_data = true和verify_ssl被删除。如果使用这些参数,只需在代码中删除它!
-
1.1.3 2023年3月20日
- 更新依赖项
-
1.1.2 2023年2月8日
- 安全修复
-
1.1.1 2022年12月4日
- 从用户代理字符串中删除空格,这是一个补丁发布
-
1.1.0 2022年11月26日
- 在尝试检索本地JSON数据文件时,添加PKG_Resource作为后备机制
-
1.0.1 2022年11月10日
- 添加Ementlib-metadata和expertlib-Resources作为依赖项
- 检查有关Ementlib资源(Python v3.10或更高)的特定Python版本,以使文件()工作
- Empertlib_Metadata现在也应该在3.8之前使用Python版本
- 删除过时的清单。在文件中
-
1.0.0 2022年11月17日
- 使JSON行数据文件部分python软件包,在本地检索数据
- 扩展MyProject.toml文件,并使用软件包数据支持
- 删除集中式缓存服务器实现
- 进行真实的单位测试,应运行可靠,快速,独立且无互联网连接
- 使JSON行数据文件部分python软件包,在本地检索数据
-
2022年11月5日0.1.14
- 使用现代Python> = 3.7语法提高代码质量标准
- 迁移到pyproject.toml构建系统格式 +语法检查
- 将其他分类器添加到TOML文件
- 改进的tox.ini文件
- 使用PIP缓存改进了GitHub动作作业
- 和各种小修复
-
0.1.13 2022年10月21日
- 实现浏览器参数,允许您覆盖要使用的浏览器名称
- 修复Internet Explorer和Edge的浏览器列表
- 不再依赖w3schools.com
- 清理数据(TEMP)文件格式
- 更新后备缓存服务器URL /使用JSON行作为文件格式
- 移至GitHub动作而不是Travis
- 使用黑色python格式化以薄片
-
0.1.12 2022年3月31日
- 分叉
-
2018年10月4日0.1.11
- 将S3 + CloudFront后卫移到Heroku.com,因为佛罗里达州的某人上个月提出了约2500万的要求
-
0.1.10 2018年2月11日
- 次要修复文档云额URL
-
0.1.9 2018年2月11日
- 修复w3schools.com重命名为IE/EDGE/EDGE/IE
- 将Heroku.com的后备移至S3 + Cloudfront
- 停止测试Python3.3和PYPY
-
2017年11月2日0.1.8
- 修复Useragentstring.com无法通过套接字连接到本地MySQL服务器
-
2017年4月2日0.1.7
- 修复损坏的readme.rst
-
2017年4月2日0.1.6
- 修复bug use_cache_server不影响任何东西
- w3schools.com <https://www.w3s*c*hoo*ls.com/browsers/browsers_stats.asp> _ _移动到https
- verify_ssl选项添加了,默认情况下是正确的(不支持Python 2.7.9-和3.4.3-的urllib.urlopen ssl上下文)
-
0.1.5 2017年2月28日
- 向Internet Explorer添加了UA.Edge别名
- w3schools.com开始显示边缘统计
- Python 2.6不再测试
- use_cache_server选项添加
- 增加了fack_useragent.settings.http_timeout到5秒
-
2016年12月14日0.1.4
- 添加了自定义数据文件位置支持
- 在不可用的数据源的情况下,添加了后备浏览器支持
- 添加别名face_useragent.fakeuseragent for nake_useragent.useragent
- 添加别名face_useragent.useragenterror forke_useragent.fakeuseragenterror
- 减少face_useragent.settings.http_timeout到3秒
- 开始迁移到新的数据文件格式
- 简化了大量4年以上的日期代码
- 更好的线/绿色安全
- 添加了详细的记录
- 添加了Safe_attrs,以防止__GetAttr __
-
2016年11月24日0.1.3
- 添加了托管数据文件,当远程服务不可用时
- 提高face_useragent.errors.fakeuseragenterror,以防万一没有办法下载数据
- 提高face_useragent.errors.fakeuseragenterror,而不是在未知的浏览器中
- 在尝试下载数据时,添加了gevent.sleep支持。
-
xxx xxxxxxx xx,xxxx
- xxxxx ??????
作者
您可以访问作者页面。
