웹 스크래핑이나 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 라이브러리를 활용하여 원하는 값을 추출할 수 있습니다. 웹 스크래핑이나 데이터 마이닝 등 다양한 분야에서 이러한 기술을 응용할 수 있으니 활용해 보시기 바랍니다.