가이드라인

BeautifulSoup 주요 메서드와 활용법

이번 수업에서는 BeautifulSoup의 주요 메서드와 그 활용 방법을 간단한 예제와 함께 알아보겠습니다.


특정 요소를 찾는 find

웹 페이지에서 특정 요소를 찾고 싶다면, find() 메서드를 사용합니다.

이 메서드는 조건에 맞는 첫 번째 요소를 반환합니다.

find 메서드 활용 예시
from bs4 import BeautifulSoup html_doc = """ <html><body> <h1>안녕하세요</h1> <p>문단 1</p> <p>문단 2</p> </body></html> """ # HTML 파싱 soup = BeautifulSoup(html_doc, 'html.parser') # h1 태그 찾기 h1_tag = soup.find('h1') # 출력: 안녕하세요 print(h1_tag.text)

위 예제에서는 h1 태그를 찾아 그 내용을 출력합니다.

find()는 항상 첫 번째로 일치하는 요소만 반환하므로, 여러 요소가 있다면 첫 번째 요소만 반환됩니다.


여러 요소를 한 번에 찾는 find_all

만약 조건에 맞는 모든 요소를 찾고 싶다면 find_all() 메서드를 사용합니다.

이 메서드는 리스트 형태로 결과를 반환해, 여러 요소를 한 번에 처리합니다.

find_all 메서드 활용 예시
from bs4 import BeautifulSoup html_doc = """ <html><body> <p>문단 1</p> <p>문단 2</p> <p>문단 3</p> </body></html> """ # HTML 파싱 soup = BeautifulSoup(html_doc, 'html.parser') # 모든 p 태그 찾기 p_tags = soup.find_all('p') # 모든 p 태그 출력 for p in p_tags: # 출력: 문단 1, 문단 2, 문단 3 print(p.text)

이 코드는 html_doc 변수에 담긴 문자열의 모든 p 태그를 찾아 출력합니다.

p_tags 변수에 p 태그의 값들이 리스트의 형태로 ['문단 1', '문단 2', '문단 3']로 저장되어 있습니다.

이렇게 find_all()은 원하는 요소들을 한 번에 찾을 때 유용합니다.


CSS 선택자로 찾는 select

CSS 선택자를 활용해 특정 요소를 선택할 때는 select()를 사용합니다.

select 메서드 활용 예시
from bs4 import BeautifulSoup html_doc = """ <html><body> <p>문단 1</p> <div class="content"> <p>문단 2</p> <p>문단 3</p> </div> </body></html> """ # HTML 파싱 soup = BeautifulSoup(html_doc, 'html.parser') # .content 클래스 안에 있는 모든 p 태그 찾기 content_p_tags = soup.select('.content p') for p in content_p_tags: # 출력: 문단 2, 문단 3 print(p.text)

이 코드에서는 .content 클래스 안에 있는 p 태그들을 모두 선택해 출력합니다.


첫 번째 요소만 선택하는 select_one()

select_one() 메서드는 select()와 유사하지만, 조건에 맞는 첫 번째 요소만 반환합니다.

select_one() 메서드 활용 예시
from bs4 import BeautifulSoup html_doc = """ <html><body> <div class="content"> <p>문단 1</p> <p>문단 2</p> </div> </body></html> """ # HTML 파싱 soup = BeautifulSoup(html_doc, 'html.parser') # .content 클래스 안의 첫 번째 p 태그 찾기 first_p_tag = soup.select_one('.content p') # 출력: 문단 1 print(first_p_tag.text)

select_one()은 조건에 맞는 첫 번째 요소만 필요할 때 간편하게 사용할 수 있습니다.

Mission
0 / 1

BeautifulSoup에서 첫 번째로 일치하는 요소를 찾기 위한 메서드는 무엇인가요?

find_all()
select()
find()
select_one()

가이드라인

AI 튜터

배포

디자인

업로드

수업 노트

즐겨찾기

도움말

코드 에디터

코드 실행
코드 생성

실행 결과