[python] 29.요청에 사용자 에이전트(User-Agent) 설정하기

웹 크롤링, 웹 스크래핑 또는 API 요청과 같이 웹 서버에 요청을 보낼 때, 사용자 에이전트(User-Agent)를 설정하는 것은 매우 중요합니다. 사용자 에이전트는 클라이언트(웹 브라우저 또는 프로그램)가 서버에게 자신을 소개하는 방법입니다. 서버는 이를 사용하여 요청이 어디서 왔는지, 어떤 종류의 클라이언트인지 등을 파악하고 응답을 제공합니다.

Python의 requests 라이브러리를 사용하여 웹 요청을 보낼 때, 사용자 에이전트(User-Agent)를 설정하는 방법을 알아보겠습니다.

requests 라이브러리 설치하기

requests 라이브러리를 사용하기 위해서는 먼저 설치해야 합니다. 아래의 명령을 사용하여 설치할 수 있습니다.

pip install requests

사용자 에이전트 설정하기

requests 라이브러리의 get() 메서드를 사용하여 웹 페이지에 GET 요청을 보낼 수 있습니다. 이때, headers 매개 변수를 사용하여 사용자 에이전트(User-Agent)를 설정할 수 있습니다.

아래는 실제 예제 코드입니다.

import requests

url = "https://www.example.com"

headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.63 Safari/537.36"
}

response = requests.get(url, headers=headers)

print(response.text)

위의 코드에서는 User-Agent로 Chrome 브라우저의 User-Agent를 설정하였습니다. 요청을 보낼 URL을 지정하고, headers에 사용자 에이전트(User-Agent)를 설정한 후, requests.get() 메서드를 호출하여 GET 요청을 보냅니다.

사용자 에이전트(User-Agent) 확인하기

작성한 코드로 요청을 보낸 후, 서버의 응답을 확인하기 위해 사용자 에이전트(User-Agent)가 실제로 설정되었는지 확인할 수 있습니다. 이를 위해 서버로부터 받은 응답의 헤더를 확인해보면 됩니다.

import requests

url = "https://www.example.com"

headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.63 Safari/537.36"
}

response = requests.get(url, headers=headers)

print(response.headers["User-Agent"])

위의 코드에서는 requests 라이브러리의 response 객체의 headers 속성을 사용하여 User-Agent 헤더 값을 가져옵니다.

마무리

이렇게 Python의 requests 라이브러리를 사용하여 웹 요청 시 사용자 에이전트(User-Agent)를 설정하는 방법을 알아보았습니다. 사용자 에이전트는 서버와의 상호작용을 원활하게 하고, 정상적인 응답을 받기 위해 중요한 요소입니다.