[python] 파이썬 BeautifulSoup으로 웹 데이터 정리하기

이번 포스트에서는 파이썬 BeautifulSoup 라이브러리를 사용하여 웹 데이터를 정리하는 방법에 대해 알아보겠습니다. BeautifulSoup은 웹 스크래핑을 위한 강력한 도구로, HTML이나 XML과 같은 마크업 언어를 파싱하여 데이터를 추출하는 데 사용됩니다.

BeautifulSoup 설치

먼저 BeautifulSoup를 사용하기 위해 설치해야 합니다. 아래의 명령어를 사용하여 설치할 수 있습니다.

pip install beautifulsoup4

웹 데이터 가져오기

먼저 웹 페이지의 HTML 코드를 가져와야 합니다. 이를 위해 requests 라이브러리를 사용하여 GET 요청을 보내고, 응답을 받아옵니다. 예를 들어, 아래와 같은 코드로 웹 페이지의 HTML 코드를 가져올 수 있습니다.

import requests

url = 'https://example.com'  # 가져올 웹 페이지의 URL
response = requests.get(url)
html_code = response.text

데이터 추출하기

이제 BeautifulSoup을 사용하여 HTML 코드에서 원하는 데이터를 추출해보겠습니다. BeautifulSoup 객체를 생성한 후, 해당 객체에 HTML 코드를 넘겨줍니다.

from bs4 import BeautifulSoup

soup = BeautifulSoup(html_code, 'html.parser')

BeautifulSoup 객체를 생성한 후, 다양한 메서드를 사용하여 데이터를 추출할 수 있습니다. 몇 가지 예시를 살펴보겠습니다.

태그 선택하기

soup.find() 메서드는 주어진 조건에 해당하는 첫 번째 태그를 반환합니다. 예를 들어, 클래스가 “header”인 div 태그를 선택하려면 다음과 같이 사용할 수 있습니다.

header_div = soup.find('div', class_='header')

soup.find_all() 메서드는 주어진 조건에 해당하는 모든 태그를 리스트로 반환합니다. 예를 들어, 모든 링크를 선택하려면 다음과 같이 사용할 수 있습니다.

links = soup.find_all('a')

속성 값 가져오기

태그 객체의 속성 값은 get() 메서드를 사용하여 가져올 수 있습니다. 예를 들어, 링크의 주소를 가져오려면 다음과 같이 사용할 수 있습니다.

link = soup.find('a')
href = link.get('href')

텍스트 추출하기

태그 객체의 텍스트는 text 속성을 사용하여 추출할 수 있습니다. 예를 들어, 제목을 가져오려면 다음과 같이 사용할 수 있습니다.

title = soup.find('h1').text

결론

이상으로, 파이썬 BeautifulSoup을 사용하여 웹 데이터를 정리하는 방법에 대해 알아보았습니다. BeautifulSoup은 웹 스크래핑에 매우 유용한 도구이며, 복잡한 웹 데이터를 쉽게 추출할 수 있도록 도와줍니다.

더 자세한 내용은 BeautifulSoup 공식 문서를 참조하시기 바랍니다.