본문 바로가기

라이브러리

파이썬(Python) requests 사용법 정리

파이썬의 requests 모듈은 HTTP 요청을 보내고 응답을 받는 데 사용되는 라이브러리입니다. requests 모듈은 다양한 HTTP 메서드(GET, POST, PUT, DELETE 등)를 지원하며, 간단하고 직관적인 API를 제공하여 HTTP 클라이언트를 쉽게 구현할 수 있도록 도와줍니다.

이제 requests 모듈을 사용하여 간단한 HTTP 요청을 보내고 응답을 받는 방법을 알아보겠습니다

1. 설치

requests 모듈은 파이썬 기본 라이브러리가 아니기 때문에 설치가 필요합니다. 다음 명령어를 사용하여 설치할 수 있습니다.

 

pip install requests

2. GET 요청

GET 요청을 보내려면 requests.get() 함수를 사용합니다. 예를 들어, http://httpbin.org/get URL로 GET 요청을 보내는 코드는 다음과 같습니다.

 

import requests

response = requests.get('http://httpbin.org/get')
print(response.text)​

 

response.text는 서버로부터 받은 응답 본문을 나타냅니다.

3. POST 요청

POST 요청을 보내려면 requests.post() 함수를 사용합니다. 예를 들어, http://httpbin.org/post URL로 JSON 데이터를 POST 요청으로 보내는 코드는 다음과 같습니다.

 

import requests
import json

data = {'key': 'value'}
headers = {'Content-type': 'application/json'}

response = requests.post('http://httpbin.org/post', data=json.dumps(data), headers=headers)
print(response.text)

 

POST 요청에서 데이터는 data 매개변수에 딕셔너리 형태로 전달됩니다. 이 경우, 데이터는 JSON 형식으로 인코딩되어 전송됩니다. headers 매개변수는 요청 헤더를 지정하는 데 사용됩니다.

4. 파일 업로드

파일을 업로드하려면 files 매개변수를 사용하여 파일을 전송할 수 있습니다. 예를 들어, http://httpbin.org/post URL로 이미지 파일을 업로드하는 코드는 다음과 같습니다.

 

import requests

url = 'http://httpbin.org/post'
files = {'file': open('image.png', 'rb')}

response = requests.post(url, files=files)
print(response.text)

5. 헤더와 쿠키

HTTP 요청 헤더를 지정하려면 headers 매개변수를 사용할 수 있습니다. 예를 들어, User-Agent 헤더를 지정하는 코드는 다음과 같습니다.

 

import requests

headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
response = requests.get('http://httpbin.org/get', headers=headers)
print(response.text)

 

쿠키를 사용하려면 `cookies` 매개변수를 사용할 수 있습니다. 예를 들어, 쿠키를 지정하여 `http://httpbin.org/cookies` URL로 GET 요청을 보내는 코드는 다음과 같습니다.

 

import requests

cookies = {'cookie_name': 'cookie_value'}

response = requests.get('http://httpbin.org/cookies', cookies=cookies)
print(response.text)

6. 인증

HTTP 기본 인증을 사용하려면 auth 매개변수를 사용할 수 있습니다. 예를 들어, http://httpbin.org/basic-auth/user/passwd URL로 HTTP 기본 인증을 사용하여 GET 요청을 보내는 코드는 다음과 같습니다.

 

import requests

auth = ('user', 'passwd')

response = requests.get('http://httpbin.org/basic-auth/user/passwd', auth=auth)
print(response.text)

7. 예외 처리

requests 모듈에서 발생하는 예외를 처리하려면 requests.exceptions 모듈을 사용할 수 있습니다. 예를 들어, requests.exceptions.RequestException 예외를 처리하는 코드는 다음과 같습니다.

 

import requests
from requests.exceptions import RequestException

try:
    response = requests.get('http://httpbin.org/get')
    response.raise_for_status()
except RequestException as e:
    print(e)

 

이 예제에서 raise_for_status() 메서드는 HTTP 응답 코드가 200 이상 400 미만인 경우에는 예외를 발생시킵니다.

이제 requests 모듈의 주요 기능과 사용법을 알아보았습니다. requests 모듈은 HTTP 클라이언트를 구현하는 데 유용한 라이브러리이며, 다양한 HTTP 요청을 간단하게 보낼 수 있도록 도와줍니다.