개발로그필름

[Python] !pip install fake_useragent 본문

IT/Python

[Python] !pip install fake_useragent

yuullog 2025. 3. 20. 18:03
728x90
반응형
SMALL

 

 

!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가 없으면 봇으로 간주하고 차단할 수도 있다

 

SMALL

 

 

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.ieInternet 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에서 확인 가능

반응형
LIST