具有真實世界資料庫的最新簡單用戶代理偽造者。
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 開始,作業系統名稱區分大小寫!
You can also specify the type of platforms you want to use, you can do that via the platforms
argument (default is ["desktop", "mobile", "tablet"]
. This example will only return random user-agents from a mobile裝置:
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
您可以造訪作者頁面。