728x90
[Python] Beautiful Soup(bs4)
파이썬(Python)에는 여러 웹 스크래핑 라이브러리가 있지만,
그 중에서도 bs4는 HTML과 XML문서를 파싱하는 데 있어 간편성과 효율성으로 많은 사랑을 받고 있다.
Beautiful Soup란?
Beautiful Soup는 파이썬을 위한 HTML 및 XML 파싱 라이브러리다.
이 라이브러리를 사용하면 웹 페이지의 구조를 쉽게 분석하고 필요한 데이터를 추출할 수 있다.
bs4는 파이썬의 표준 라이브러리인 html.parser를 기본 파서로 사용하지만, 더 빠르고 강력한 외부 파서
(ex. lxml, hrml5lib)도 지원합니다.
Beautiful Soup 설치하기
bs4를 사용하기위해 먼저 라이브러리를 설치해준다.
다음 명령어를 통해서 설치가 가능하다.
pip install beautifulsoup4
pip install lxml
Beautiful Soup 사용하기
예제 웹 페이지로부터 제목과 첫 번째 단락을 추출하는 코드를 작성해보자.
from bs4 import BeautifulSoup
import requests
# 웹 페이지 요청
url = 'https://example.com'
response = requests.get(url)
# Beautiful Soup 객체 생성
soup = BeautifulSoup(response.content, 'lxml')
# 제목 추출
title = soup.find('title').get_text()
print('제목:', title)
# 첫 번째 단락 추출
first_paragraph = soup.find('p').get_text()
print('첫 번째 단락:', first_paragraph)
Beautiful Soup를 사용하는 다양한 방법
여러 요소 선택하기
특정 태그의 모든 요소를 선택하여면 find_all 메서드를 사용할 수 있다.
# 모든 링크 추출
links =soup.find_all('a')
for link in links:
print(link.get('href'))
>>> https://www.iana.org/domains/example
CSS 선택자 사용하기
CSS 선택자를 사용하여 요소를 선택할 수 있다.
# 특정 클래스의 모든 요소 선택
items = soup.select('.item-class')
for item in items:
print(item.get_text())
부모, 자식, 형제 요소 탐색하기
Beautiful Soup는 DOM 트리 내에서 요소 간의 관계를 탐색하는 기능도 제공한다.
# 특정 요소의 부모 요소 선택
parent = soup.find('div', class_='child-class').parent
print(parent)
# 형제 요소 선택
sibling = soup.find('h2').find_next_sibling('p')
print(sibling.get_text())
반응형
'👩💻 Develope > Python' 카테고리의 다른 글
[Python] 주피터 노트북 서버 설정하기 (0) | 2024.07.11 |
---|---|
[Python] 리눅스에 Pyenv 가상환경 설치 (0) | 2024.07.08 |
[Python] get() (0) | 2024.05.08 |
[Python] Set (0) | 2024.04.22 |
[Python] 파이참 콘솔에서 output이 깨져서 보일 때 (0) | 2024.04.17 |