웹 스크래핑이나 API 요청을 할 때, 쿠키는 인증을 유지하고 세션 정보를 추적하는 데 사용됩니다. Python의 requests
라이브러리는 HTTP 요청을 만들고 응답을 받는 데 사용되는 강력하고 직관적인 도구입니다. requests
라이브러리를 사용하여 웹 페이지에서 받은 쿠키를 처리하는 방법을 살펴보겠습니다.
쿠키 가져오기
쿠키를 가져오기 위해서는 서버로부터 받은 응답에 있는 쿠키를 분석해야 합니다. Response
객체의 cookies
속성을 사용하여 쿠키를 가져올 수 있습니다. 다음은 예시입니다.
import requests
# GET 요청을 보내고 응답을 받습니다.
response = requests.get('https://www.example.com')
# 응답에서 쿠키를 가져옵니다.
cookies = response.cookies
# 쿠키 정보를 출력합니다.
for cookie in cookies:
print(cookie.name, cookie.value)
위의 예시에서 response.cookies
는 RequestsCookieJar
객체를 반환합니다. RequestsCookieJar
객체는 모든 쿠키를 저장하고 있는 컨테이너입니다. 각각의 쿠키는 Cookie
객체로 표현됩니다. Cookie
객체에서 name
속성은 쿠키의 이름, value
속성은 쿠키의 값입니다.
쿠키 전송하기
다음으로는 requests
를 사용하여 서버에 쿠키를 전송하는 방법을 알아보겠습니다. 이를 위해서는 cookies
매개변수를 사용하여 쿠키를 전달할 수 있습니다. 다음은 예시입니다.
import requests
# 쿠키 정보를 저장할 변수를 선언합니다.
cookies = {'name': 'value'}
# GET 요청을 보내고 쿠키를 전송합니다.
response = requests.get('https://www.example.com', cookies=cookies)
위의 예시에서 cookies
변수에 쿠키 정보를 딕셔너리 형태로 저장합니다. 그리고 requests.get()
함수의 cookies
매개변수에 해당 변수를 전달하여 쿠키를 서버로 전송합니다.
세션 유지하기
인증 정보가 필요한 경우, requests
를 사용하여 세션을 유지하고 쿠키를 저장하는 것이 편리합니다. 이를 위해 Session
객체를 사용할 수 있습니다. 다음은 예시입니다.
import requests
# 세션 객체를 생성합니다.
session = requests.Session()
# 로그인 요청을 보냅니다.
response = session.post('https://www.example.com/login', data={'username': 'user', 'password': 'pass'})
# 다른 요청을 보낼 때 세션 정보를 유지하여 쿠키를 전송합니다.
response = session.get('https://www.example.com/profile')
위의 예시에서 requests.Session()
을 호출하여 Session
객체를 생성합니다. 그리고 로그인 요청을 보낼 때 session.post()
함수를 사용하여 세션 객체를 사용합니다. 이후 다른 요청을 보낼 때는 세션 정보가 유지되므로 session.get()
함수를 사용하여 쿠키가 자동으로 전송됩니다.
결론
requests
라이브러리를 사용하면 쉽게 HTTP 요청을 만들고 응답을 받을 수 있습니다. 쿠키를 처리하는 response.cookies
속성과 cookies
매개변수를 활용하여 서버로부터 쿠키를 가져오고 전송할 수 있습니다. 세션을 유지하여 쿠키 정보를 저장하면 인증 정보를 효율적으로 관리할 수 있습니다. 이를 통해 웹 스크래핑이나 API 요청에서 쿠키를 손쉽게 다룰 수 있습니다.