[python] 응답 본문에서 특정 데이터 추출하기

웹 스크래핑이나 API 호출 등을 통해 응답 받은 데이터에서 특정한 값을 추출해야 할 때가 종종 있습니다. 이번 포스트에서는 Python을 사용하여 응답 본문에서 원하는 데이터를 추출하는 방법에 대해 알아보겠습니다.

Requests 라이브러리로 응답 받기

먼저, Requests 라이브러리를 사용하여 웹 서버에 요청을 보내고 응답을 받는 방법을 알아보겠습니다. 아래는 간단한 GET 요청을 보내고 응답을 받는 예제입니다.

import requests

response = requests.get('http://example.com')

응답 본문에서 데이터 추출하기

응답 객체 response에서는 .text 속성을 사용하여 응답 본문을 문자열로 가져올 수 있습니다. 이제 가져온 본문에서 원하는 데이터를 추출하는 방법을 알아보겠습니다.

정규 표현식 사용하기

정규 표현식을 사용하면 특정 패턴을 추출할 수 있습니다. 예를 들어, 본문에서 이메일 주소를 추출해야 한다면 다음과 같은 방법을 사용할 수 있습니다.

import re

pattern = r'\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b'
emails = re.findall(pattern, response.text)

위의 예제는 이메일 주소 패턴을 정규 표현식으로 정의한 다음, re.findall() 함수를 사용하여 본문에서 패턴과 일치하는 모든 문자열을 추출합니다.

BeautifulSoup 라이브러리 사용하기

BeautifulSoup 라이브러리를 사용하면 HTML과 XML 문서에서 데이터를 추출할 수 있습니다. 아래는 BeautifulSoup를 사용하여 웹 페이지에서 제목 태그를 추출하는 예제입니다.

from bs4 import BeautifulSoup

soup = BeautifulSoup(response.text, 'html.parser')
titles = soup.find_all('h1')

위의 예제에서는 BeautifulSoup 객체를 생성한 다음 find_all() 메서드를 사용하여 본문에서 모든 제목 태그를 추출합니다.

결론

Python을 사용하여 응답 본문에서 특정 데이터를 추출하는 방법에 대해 알아보았습니다. 정규 표현식이나 BeautifulSoup 라이브러리를 활용하여 원하는 값을 추출할 수 있습니다. 웹 스크래핑이나 데이터 마이닝 등 다양한 분야에서 이러한 기술을 응용할 수 있으니 활용해 보시기 바랍니다.