[python] 파이썬 BeautifulSoup으로 웹 사이트 탐색하기

파이썬은 웹 크롤링을 위한 다양한 라이브러리를 제공합니다. 그 중에서도 BeautifulSoup은 웹 사이트의 HTML 구조를 파싱하여 데이터를 추출하는 데에 매우 유용한 도구입니다. 이번 글에서는 파이썬 BeautifulSoup을 사용하여 웹 사이트를 탐색하는 방법에 대해 알아보겠습니다.

BeautifulSoup 설치하기

먼저, BeautifulSoup을 설치해야 합니다. 다음 명령을 사용하여 설치할 수 있습니다.

pip install beautifulsoup4

웹 사이트 HTML 가져오기

먼저, 탐색할 웹 사이트의 HTML을 가져와야 합니다. 파이썬에서는 requests 라이브러리를 사용하여 웹 페이지의 내용을 가져올 수 있습니다. 다음은 간단한 예제입니다.

import requests

url = "http://example.com"
response = requests.get(url)
html_content = response.text

위 코드에서 url 변수에는 탐색할 웹 사이트의 URL을 지정하고, requests.get() 함수를 사용하여 해당 웹 페이지의 HTML을 가져옵니다. 가져온 HTML 내용은 response.text에서 확인할 수 있습니다.

BeautifulSoup 객체 생성하기

웹 사이트의 HTML을 가져왔다면, 이제 BeautifulSoup 객체를 생성해야 합니다. 다음은 간단한 예제입니다.

from bs4 import BeautifulSoup

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

위 코드에서 html_content 변수에는 가져온 HTML 내용이 들어가고, 'html.parser'는 파싱 방법을 지정합니다. BeautifulSoup 객체는 이후에 원하는 데이터를 추출하는 데에 사용됩니다.

웹 사이트 탐색하기

이제 BeautifulSoup 객체를 사용하여 원하는 데이터를 추출할 수 있습니다. BeautifulSoup은 HTML의 구조를 이해하고 탐색할 수 있는 다양한 메서드를 제공합니다. 다음은 몇 가지 예제입니다.

태그 선택하기

# <a> 태그 선택하기
all_links = soup.find_all('a')

# class가 "title"인 <div> 태그 선택하기
div_with_class_title = soup.find('div', class_='title')

# id가 "header"인 <div> 태그 선택하기
div_with_id_header = soup.find('div', id='header')

위 코드는 BeautifulSoup 객체에서 지정한 태그를 선택하는 예제입니다. find_all() 메서드는 조건에 맞는 모든 태그를 선택하고, find() 메서드는 조건에 맞는 첫 번째 태그를 선택합니다.

속성 값 가져오기

# <img> 태그의 src 속성 값 가져오기
img_src = soup.find('img').get('src')

# <a> 태그의 href 속성 값 가져오기
a_href = soup.find('a').get('href')

위 코드는 선택한 태그의 속성 값을 가져오는 예제입니다. get() 메서드를 사용하여 속성 값을 가져올 수 있습니다.

예제 코드 전체

아래는 앞에서 설명한 내용을 종합한 예제 코드입니다.

import requests
from bs4 import BeautifulSoup

url = "http://example.com"
response = requests.get(url)
html_content = response.text

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

all_links = soup.find_all('a')
div_with_class_title = soup.find('div', class_='title')
div_with_id_header = soup.find('div', id='header')

img_src = soup.find('img').get('src')
a_href = soup.find('a').get('href')

위 코드를 실행하면 웹 사이트의 HTML을 가져와 태그를 선택하고 속성 값을 추출하는 과정을 확인할 수 있습니다.

이처럼 BeautifulSoup을 사용하여 파이썬으로 웹 사이트를 탐색할 수 있습니다. 자세한 내용은 BeautifulSoup 공식 문서를 참조하시기 바랍니다.

참고 자료