실제 데이터베이스를 갖춘 최신 단순 사용자 에이전트 가짜입니다.
desktop
, tablet
및/또는 mobile
UA)useragent
, percent
, type
, device_brand
, browser
, browser_version
, os
, os_version
및 platform
과 같은 필드가 포함된 사용자 에이전트 Python 사전(객체라고도 함)을 검색합니다.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부터 OS 이름은 대소문자를 구분합니다!
사용하려는 플랫폼 유형을 지정할 수도 있습니다. 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부터 사용자 에이전트 문자열만 반환하는 대신 UA의 전체 Python 사전을 반환하는 다음과 같은 "get" 속성도 제공합니다.
경고 원시 JSON 개체(Python 사전)는 "있는 그대로" 반환됩니다. 즉, 이 데이터 구조는 미래에 변경될 수 있습니다!
아래의 "get" 속성은 나중에 동일한 키/값 쌍을 반환하지 않을 수도 있다는 점에 유의하세요. 안정적인 인터페이스를 사용하려면
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
매개변수를 사용하여 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
디렉터리에 있습니다.
우리는 현재 user-agents.net에서 user-agent 스크립트를 가져오고 가끔씩 user-agent를 업데이트하기 위한 새로운 자동화 스크립트(문제 #333 참조)를 개발 중입니다.
데이터 JSON 파일은 Python 패키지의 일부입니다. pyproject.toml을 참조하세요. 데이터 파일 지원에 대해 자세히 알아보세요.
Pip 패키지를 설치하기 전에 다음과 같이 Python 가상 환경을 사용하는 것이 좋습니다.
python -m virtualenv env
source env/bin/activate
pip install -e .
pip install -r requirements.txt
tox
러프를 사용하여 가져오기를 수정하려면 다음을 수행하세요.
pip install -r requirements.txt
ruff check --select= " I " --fix .
검정색 코드 형식 오류 수정:
pip install -r requirements.txt
black .
참고: ruff v1.0이 출시되면 black
대신 ruff
쪽으로 완전히 이동할 가능성이 높습니다.
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')
)win10
및 win7
값을 모두 확인하도록 os
인수 'windows'를 수정하여(이전에는 win10
에서만 확인) 더 많은 UA를 반환합니다.1.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
추가합니다.1.0.1 2022년 11월 10일
importlib-metadata
및 importlib-resources
종속성으로 추가files()
작동하려면 importlib 리소스(python v3.10 이상)와 관련된 특정 Python 버전을 확인하세요.importlib_metadata
이제 Python 3.8 이전 버전에서도 작동합니다.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 포맷터 사용0.1.12 2022년 3월 31일
0.1.11 2018년 10월 4일
s3 + cloudfront
fallback을 heroku.com
으로 옮겼습니다. 지난 달 플로리다의 누군가가 ~2,500만 요청을 했기 때문입니다.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.UserAgent
fake_useragent.FakeUserAgent
추가했습니다.fake_useragent.UserAgentError
에 대한 별칭 fake_useragent.FakeUserAgentError
를 추가했습니다.fake_useragent.settings.HTTP_TIMEOUT
3초로 줄였습니다.__getattr__
에 의한 재정의를 방지하기 위해 safe_attrs
추가했습니다.0.1.3 2016년 11월 24일
fake_useragent.errors.FakeUserAgentError
를 발생시킵니다.None
대신 fake_useragent.errors.FakeUserAgentError
발생시킵니다.gevent
패치 환경에서 gevent.sleep
지원이 추가되었습니다.XXX xxxxxx xx, xxxx
작가 페이지를 방문하실 수 있습니다.