개발언어 Back-End/Python
requests-random-user-agent - User-Agent 값을 무작위로 설정하는 파이썬 라이브러리
목차
1. 설치
pip install requests-random-user-agent
2. 개요
- requests-random-user-agent는 requests 라이브러리와 함께 사용되며, 매 요청마다 랜덤한 User-Agent 값을 자동으로 설정해준다.
- 이 라이브러리는 requests 라이브러리 전용이므로, Selenium에서는 직접 사용할 수 없다.
- 즉, requests-random-user-agent는 Selenium과 호환되지 않는다.
1) 주요 특징
- 자동 User-Agent 변경: 요청할 때마다 다양한 브라우저와 플랫폼의 User-Agent를 랜덤하게 적용
- requests와 통합: requests.Session()과 함께 사용 가능
- 가벼운 패키지: 추가적인 설정 없이 간단하게 적용 가능
3. 기본 사용법
1) requests와 함께 사용하기
import requests
from requests_random_user_agent import UserAgentMiddleware
session = requests.Session()
session.headers.update({'User-Agent': UserAgentMiddleware().random}) # 랜덤 User-Agent 적용
response = session.get("https://httpbin.org/user-agent") # 요청 보내기
print(response.json()) # 결과 출력
2) 요청마다 랜덤 User-Agent 적용
from requests_random_user_agent import UserAgentMiddleware
ua_middleware = UserAgentMiddleware()
for _ in range(5):
print(ua_middleware.random) # 매 요청마다 다른 User-Agent 출력
4. 주요 기능
1) 랜덤 User-Agent 가져오기
from requests_random_user_agent import UserAgentMiddleware
ua = UserAgentMiddleware()
print(ua.random) # 무작위 User-Agent 값 출력
2) 특정 브라우저 기반 User-Agent 설정
- 현재 requests-random-user-agent는 특정 브라우저나 운영체제를 직접 지정하는 기능을 제공하지 않는다. 하지만, 특정 패턴을 가진 User-Agent를 필터링하는 방법은 가능하다.
ua = UserAgentMiddleware()
# 특정 브라우저의 User-Agent만 필터링
user_agent = ua.random
if "Chrome" in user_agent:
print(f"사용 중인 User-Agent: {user_agent}")
3) requests.Session()과 함께 사용
import requests
from requests_random_user_agent import UserAgentMiddleware
session = requests.Session()
session.headers.update({'User-Agent': UserAgentMiddleware().random})
response = session.get("https://example.com")
print(response.text)
4) 직접 헤더에 적용하기
import requests
from requests_random_user_agent import UserAgentMiddleware
headers = {'User-Agent': UserAgentMiddleware().random}
response = requests.get("https://example.com", headers=headers)
print(response.request.headers) # 실제 요청된 User-Agent 확인
5. 고급 기능
1) 커스텀 User-Agent 풀 설정
from requests_random_user_agent import UserAgent
custom_agents = [
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36',
'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)',
'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36'
]
ua = UserAgent()
ua.set_user_agents(custom_agents)
6. 활용 예제
1) 여러 번 요청하며 User-Agent 변경
import requests
from requests_random_user_agent import UserAgentMiddleware
ua_middleware = UserAgentMiddleware()
for _ in range(3):
headers = {'User-Agent': ua_middleware.random}
response = requests.get("https://httpbin.org/user-agent", headers=headers)
print(response.json()) # 요청마다 다른 User-Agent 확인
2) BeautifulSoup과 함께 사용하기
import requests
from bs4 import BeautifulSoup
from requests_random_user_agent import UserAgentMiddleware
headers = {'User-Agent': UserAgentMiddleware().random}
response = requests.get("https://example.com", headers=headers)
soup = BeautifulSoup(response.text, "html.parser")
print(soup.title.text) # 웹 페이지 제목 출력
7. requests-random-user-agent의 한계
한계점 | 설명 |
특정 브라우저 선택 불가 | fake_useragent처럼 특정 브라우저의 User-Agent를 직접 선택할 수 없음 |
User-Agent 리스트 고정 | 제공되는 User-Agent 목록이 업데이트되지 않을 경우 최신 브라우저 정보가 반영되지 않을 수 있음 |
User-Agent 차단 가능성 | 일부 사이트에서는 특정 User-Agent 패턴을 차단할 가능성이 있음 |
프록시 미지원 | requests-random-user-agent 자체적으로 프록시 기능을 제공하지 않음 |
8. 대안 및 비교
라이브러리 | 주요 기능 | 특징 |
fake-useragent | 특정 브라우저의 User-Agent 선택 가능 | 외부 데이터를 가져와야 하며, 가끔 작동하지 않을 수 있음 |
requests-random-user-agent | 요청마다 자동으로 User-Agent 변경 | 가볍고 간단하지만 특정 브라우저 선택 기능이 없음 |
scrapy-fake-useragent | Scrapy에서 User-Agent 변경 가능 | Scrapy 프로젝트에서 유용 |
undetected_chromedriver | Selenium 기반의 탐지 우회 | 실제 브라우저 환경을 모방 |
'개발언어 Back-End > Python' 카테고리의 다른 글
python에서 클래스의 인터페이스를 구현하는 방법 (0) | 2025.03.11 |
---|---|
파이썬 메타클래스의 이해와 활용 (0) | 2025.03.10 |
fake_useragent - User-Agent 값을 조작하는 파이썬 라이브러리 (0) | 2025.02.21 |
itertools(반복자 도구) 파이썬 라이브러리 정리 (0) | 2025.02.15 |
Python Logging 설정 파일 매뉴얼 (0) | 2025.02.13 |
댓글