HTTP를 위한 Python의 요청 라이브러리를 사용하는 방법
requests
라이브러리는 HTTP 요청 프로세스를 간소화하는 인기 있는 Python 모듈입니다. 요청 및 응답 처리의 복잡성을 추상화하여 웹 서비스 및 API와 상호 작용하기 쉽게 만듭니다. 이 문서에서는 다양한 유형의 HTTP 요청을 보내고 응답을 처리하는 방법을 포함하여 requests
라이브러리 사용의 기본 사항을 살펴보겠습니다.
요청 라이브러리 설치
requests
라이브러리를 사용하려면 먼저 설치해야 합니다. Python 패키지 관리자인 pip
를 사용하여 설치할 수 있습니다. 터미널에서 다음 명령을 실행하세요.
pip install requests
간단한 GET 요청 만들기
가장 기본적인 HTTP 요청은 GET 요청으로, 서버에서 데이터를 검색합니다. requests
라이브러리를 사용하여 GET 요청을 만드는 방법은 다음과 같습니다.
import requests
response = requests.get('https://api.github.com')
print(response.status_code)
print(response.json())
이 예제에서는 GitHub API에 GET 요청을 보내고 HTTP 상태 코드와 응답 내용을 JSON 형식으로 출력합니다.
POST 요청 보내기
POST 요청은 폼 제출과 같은 데이터를 서버로 보내는 데 사용됩니다. requests
라이브러리로 POST 요청을 보내는 방법은 다음과 같습니다.
import requests
data = {'key1': 'value1', 'key2': 'value2'}
response = requests.post('https://httpbin.org/post', data=data)
print(response.status_code)
print(response.json())
이 예제에서는 일부 양식 데이터가 포함된 POST 요청을 httpbin.org 테스트 서비스로 보내고 응답 상태 코드와 내용을 출력합니다.
쿼리 매개변수 처리
때로는 요청에 쿼리 매개변수를 포함해야 합니다. requests
라이브러리는 매개변수를 사전으로 전달할 수 있도록 하여 이를 쉽게 해줍니다.
import requests
params = {'search': 'python', 'page': 1}
response = requests.get('https://httpbin.org/get', params=params)
print(response.status_code)
print(response.url)
이 예제에서는 GET 요청에 쿼리 매개변수를 포함하고 매개변수가 포함된 최종 URL을 인쇄합니다.
헤더 작업
인증이나 콘텐츠 유형 지정과 같은 경우 요청에 사용자 지정 헤더를 포함해야 할 수 있습니다. 요청에 헤더를 추가하는 방법은 다음과 같습니다.
import requests
headers = {'Authorization': 'Bearer YOUR_TOKEN'}
response = requests.get('https://api.github.com/user', headers=headers)
print(response.status_code)
print(response.json())
이 예에서는 GitHub API에 대한 요청에 인증 헤더를 포함하고 상태 코드와 응답 내용을 출력합니다.
시간 초과 및 예외 처리
네트워크 타임아웃 및 기타 예외와 같은 잠재적인 문제를 처리하는 것이 중요합니다. requests
라이브러리를 사용하면 타임아웃을 지정하고 예외를 잡을 수 있습니다.
import requests
from requests.exceptions import RequestException
try:
response = requests.get('https://httpbin.org/delay/5', timeout=3)
response.raise_for_status()
print(response.status_code)
print(response.text)
except RequestException as e:
print(f'An error occurred: {e}')
이 예제에서 우리는 요청에 대한 시간 초과를 설정하고 발생하는 모든 예외를 포착하며, 문제가 발생하면 오류 메시지를 출력합니다.
결론
requests
라이브러리는 Python에서 HTTP 요청을 만드는 강력하고 사용자 친화적인 도구입니다. API에서 데이터를 검색하든, 양식 제출을 보내든, 사용자 지정 헤더를 처리하든, requests
라이브러리는 몇 줄의 코드만으로 이러한 작업을 쉽게 수행할 수 있도록 합니다. 이 문서에서 다루는 기본 사항을 숙지하면 Python 프로젝트에서 웹 서비스 및 API와 상호 작용할 준비가 잘 됩니다.