개발로그필름
[Python] !pip install fake_useragent 본문

!pip install fake_useragent 역할
웹 스크래핑 할 때, User-Agent 값을 랜덤으로 생성해주는 라이브러리
- User-Agent는 웹 브라우저나 장치 정보를 웹사이트에 전달하는 HTTP 헤더 중 하나
- 일부 웹사이트는 특정 User-Agent(예: 봇, 자동화 요청)를 차단한다
- fake_useragent를 사용하면 매번 다른 User-Agent를 생성하여 스크래핑 차단을 피할 수 있다
1. fake_useragent 설치
!pip install fake_useragent
✔ !pip install → Jupyter Notebook에서 패키지 설치
✔ fake_useragent → User-Agent를 랜덤으로 생성하는 라이브러리
2. fake_useragent 사용법
from fake_useragent import UserAgent
ua = UserAgent()
print(ua.random) # 랜덤한 User-Agent 출력
💡 실행할 때마다 다른 User-Agent 값이 생성된다
3. User-Agent를 웹 스크래핑에 적용
import requests
from fake_useragent import UserAgent
ua = UserAgent()
headers = {'User-Agent': ua.random} # 랜덤 User-Agent 적용
url = "https://example.com"
response = requests.get(url, headers=headers)
print(response.status_code) # 200이면 정상 요청
✔ User-Agent를 매번 랜덤으로 설정하여 차단 방지
✔ 웹사이트가 특정 User-Agent를 차단하는 경우에도 우회 가능
📌 requests.get(url, headers=headers)에서 headers를 같이 보내는 이유
- 웹 서버에 추가적인 정보를 제공하여 정상적인 요청처럼 보이게 하기 위해서
- 특히, 웹 스크래핑을 할 때 차단을 피하기 위해 User-Agent 정보를 포함하는 것이 중요
✅ headers의 역할
- HTTP 요청 시 headers는 웹 서버에 추가적인 정보를 전달하는 역할을 한다
- 브라우저에서 사이트를 방문할 때도 요청 헤더가 함께 전송된다
- 특정 웹사이트는 User-Agent나 Referer가 없으면 봇으로 간주하고 차단할 수도 있다
4. 특정 브라우저 User-Agent 생성
랜덤이 아니라 특정 브라우저 기반으로 User-Agent를 설정할 수도 있다
ua = UserAgent()
print(ua.chrome) # 크롬 User-Agent
print(ua.firefox) # 파이어폭스 User-Agent
print(ua.safari) # 사파리 User-Agent
print(ua.edge) # 엣지 User-Agent
✔ 특정 브라우저로 위장하여 요청 가능
✔ 웹사이트가 특정 브라우저만 허용하는 경우 유용
📌 ua.ie
from fake_useragent import UserAgent
ua = UserAgent()
headers = {'User-Agent': ua.ie}
✔ ua.ie는 Internet Explorer(IE) 브라우저의 User-Agent 값을 가져오는 기능
✔ 즉, HTTP 요청 시 브라우저가 “Internet Explorer”인 것처럼 위장
5. fake_useragent를 사용할 때 주의할 점
1️⃣ 일부 사이트에서는 fake_useragent가 차단될 수 있다
- fake_useragent가 제공하는 User-Agent 목록이 일부 사이트에서 감지될 가능성이 있다
- 차단될 경우, 직접 User-Agent 리스트를 수동으로 설정하는 것이 더 안전하다
2️⃣ 서버에서 403 Forbidden이 발생하면 수동 User-Agent 사용
- fake_useragent가 항상 완벽하게 동작하는 것은 아니다
- 특정 사이트에서는 차단될 가능성이 있다
✔ 수동으로 User-Agent 설정하는 방법
headers = {
"User-Agent": "각자 웹 사이트 request headers에서 확인할 수 있는 주소"
}
response = requests.get(url, headers=headers)
💡 User-Agent의 value 값은 웹 페이지 개발자 도구 네트워크 탭, json 파일 맨 밑에 Request Headers에서 확인 가능
'IT > Python' 카테고리의 다른 글
[Python] List Comprehension 리스트 컴프리헨션 (0) | 2025.03.22 |
---|---|
[Python] raise : 예외를 발생시키는 방법과 활용법 (0) | 2025.03.18 |
[python] turtle graphic 알고리즘 패턴 만들기 코드 예제 (0) | 2023.09.04 |
[Python] turtle graphic 핀 제어 코드 예제 모음 (1) | 2023.09.03 |
[Python] Turtle Graphic 터틀 그래픽 기본 그리기 코드 예제 (0) | 2023.09.03 |