具有真实世界数据库的最新简单用户代理伪造者。
desktop
、 tablet
和/或mobile
UA)useragent
、 percent
、 type
、 device_brand
、 browser
、 browser_version
、 os
、 os_version
和platform
等字段pip install fake-useragent
或者,如果您安装了多个 Python / pip 版本,请使用pip3
:
pip3 install fake-useragent
下面是简单的用法示例,另请参阅本自述文件的后续章节以了解更高级的用法:
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 以来 fake-useragent 现在提供的附加功能。
如果您想指定自己的浏览器列表,可以通过browsers
参数来完成(默认为: ["Google", "Chrome", "Firefox", "Edge", "Opera"," Safari", "Android", "Yandex Browser", "Samsung Internet", "Opera Mobile", "Mobile Safari", "Firefox Mobile", "Firefox iOS", "Chrome Mobile", "Chrome Mobile iOS", "Mobile Safari UI/WKWebView", "Edge Mobile", "DuckDuckGo Mobile", "MiuiBrowser", "Whale", "Twitter", "Facebook", "Amazon Silk"]
)。
此示例将仅从 Edge 和 Chrome 返回随机用户代理:
from fake_useragent import UserAgent
ua = UserAgent ( browsers = [ 'Edge' , 'Chrome' ])
ua . random
注意: Fakeuser-agent 已知浏览器:Chrome、Edge、Firefox、Safari、Opera、Android、Opera Mobile、Mobile Safari、Firefox Mobile、Firefox iOS、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 开始,操作系统名称区分大小写!
您还可以指定要使用的平台类型,可以通过platforms
参数来执行此操作(默认为["desktop", "mobile", "tablet"]
。此示例仅从移动设备返回随机用户代理设备:
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
参数指定最小使用百分比。但是,当前的用户代理列表不包含此统计信息。因此所有用户代理都将匹配。
提示:当然,您可以根据自己的喜好组合所有这些参数!
从版本 1.3.0 开始,我们现在还为您提供以下“get”属性,它们返回 UA 的整个 Python 字典,而不仅仅是用户代理字符串:
警告原始 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' )
您可以使用fallback
参数覆盖后备字符串,在极少数情况下会失败:
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
您可以向那里传递属性名称。至少这会阻止您在找不到属性时引发 FakeUserAgentError 。
例如,当使用带有injections <https://github.com/tailhook/injections>
时,您需要:
from fake_useragent import UserAgent
ua = UserAgent ( safe_attrs = ( '__injections__' ,))
如果您不明白为什么需要这个,请不要使用。这对于罕见的极端情况来说是神奇的。
确保您使用的是最新版本!
pip install --upgrade fake-useragent
或者,如果这不起作用,请尝试安装最新的软件包版本,如下所示( 2.0.1
是一个示例,请检查 PyPi 上的最新版本):
pip install fake-useragent==2.0.1
通过 Python 控制台检查版本:
import fake_useragent
print ( fake_useragent . __version__ )
并且随时欢迎您发布问题。
请不要忘记提及您正在使用的版本。
我们从 user-agents.net 检索的用户代理数据。数据以 JSONlines 格式存储。文件位于: src/fake_useragent/data
目录中。
我们目前正在开发一个新的自动化脚本(请参阅问题#333),以从 user-agents.net 获取用户代理脚本并偶尔更新用户代理。
数据 JSON 文件是 Python 包的一部分,请参阅 pyproject.toml。了解有关数据文件支持的更多信息。
我们鼓励在安装 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
而不是black
。
2.0.1
2.0.0 2024 年 12 月 4 日
"Google", "Chrome", "Firefox", "Edge", "Opera"," Safari", "Android", "Yandex Browser", "Samsung Internet", "Opera Mobile", "Mobile Safari", "Firefox Mobile", "Firefox iOS", "Chrome Mobile", "Chrome Mobile iOS", "Mobile Safari UI/WKWebView", "Edge Mobile", "DuckDuckGo Mobile", "MiuiBrowser", "Whale", "Twitter", "Facebook", "Amazon Silk"
"Windows", "Linux", "Ubuntu", "Chrome OS", "Mac OS X", "Android", "iOS"
"desktop", "mobile", "tablet"
1.5.1 2024年3月16日
1.5.0 2024 年 3 月 8 日
1.4.0 2023 年 11 月 24 日
1.3.0 2023 年 10 月 2 日
ua.getRandom
、 ua.getFirefox
、 ua.getChrome
、 ua.getSafari
。还有一个通用方法: ua.getBrowser(..)
(例如getBrowser('firefox')
)os
参数 'windows' 以检查win10
和win7
值(之前仅检查win10
),从而返回更多 UA1.2.1 2023年8月2日
min_percentage
检查的小改进1.2.0 2023 年 8 月 2 日
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 日
pkg_resource
作为尝试检索本地 JSON 数据文件的后备机制1.0.1 2022 年 11 月 10 日
importlib-metadata
和importlib-resources
作为依赖项files()
正常工作importlib_metadata
现在也应该适用于 3.8 之前的 Python 版本MANIFEST.in
文件1.0.0 2022 年 11 月 17 日
package-data
支持扩展myproject.toml
文件0.1.14 2022年11月5日
pyproject.toml
构建系统格式+语法检查tox.ini
文件0.1.13 2022 年 10 月 21 日
browsers
参数,允许您覆盖要使用的浏览器名称black
Python 格式化程序支持 Flake0.1.12 2022 年 3 月 31 日
0.1.11 2018 年 10 月 4 日
s3 + cloudfront
后备移至heroku.com
,因为来自佛罗里达州的某人上个月发出了约 2500 万个请求0.1.10 2018 年 2 月 11 日
cloudfront
url0.1.9 2018年2月11日
w3schools.com
将IE/Edge
重命名为Edge/IE
heroku.com
后备移动到s3 + cloudfront
0.1.8 2017年11月2日
useragentstring.com
Can't connect to local MySQL server through socket
0.1.7 2017年4月2日
0.1.6 2017年4月2日
use_cache_server
不影响任何内容的错误w3schools.com <https://www.w3schools.com/browsers/browsers_stats.asp>
_ 已移至https
verify_ssl
选项,默认情况下为True
(不支持 Python 2.7.9- 和 3.4.3- 的urllib.urlopen
ssl 上下文)0.1.5 2017 年 2 月 28 日
ua.edge
别名Edge
统计数据use_cache_server
选项fake_useragent.settings.HTTP_TIMEOUT
增加到 5 秒0.1.4 2016年12月14日
fallback
浏览器支持,以防数据源不可用fake_useragent.FakeUserAgent
添加别名fake_useragent.UserAgent
fake_useragent.FakeUserAgentError
添加了别名fake_useragent.UserAgentError
fake_useragent.settings.HTTP_TIMEOUT
减少到 3 秒safe_attrs
以防止被__getattr__
覆盖0.1.3 2016年11月24日
fake_useragent.errors.FakeUserAgentError
fake_useragent.errors.FakeUserAgentError
而不是None
gevent
修补环境中添加了gevent.sleep
支持xxx xxxxxxx xx, xxxx
您可以访问作者页面。