BeautifulSoup(bs4)은 「HTML·XML을 파이썬 객체로 변환해 손쉽게 탐색·추출」하는 라이브러리입니다.
웹 스크래핑에서 데이터를 뽑아낼 때 가장 많이 쓰입니다.
설치·기본.
pip install beautifulsoup4 lxml.
from bs4 import BeautifulSoup.
soup = BeautifulSoup(html, "lxml") — html은 문자열, lxml은 파서(빠른 편).
다른 파서로 "html.parser"(표준), "html5lib"(가장 관대) 선택 가능.
탐색.
soup.find("a") — 첫 태그.
soup.find_all("div", class_="post") — 모든 매칭.
soup.select("div.post > h2 a") — CSS 셀렉터로 강력한 탐색.
soup.select_one(...) — 첫 매칭 1개.
추출.
tag.text — 태그 안의 모든 텍스트.
tag.get("href") 또는 tag["href"] — 속성 값.
tag.attrs — 모든 속성 딕셔너리.
tag.string — 자식 텍스트가 1개일 때만 동작(아니면 None).
트리 탐색.
tag.parent — 부모 태그.
tag.children — 직계 자식.
tag.descendants — 모든 후손.
tag.next_sibling — 다음 형제.
복잡한 구조에서 「특정 텍스트 옆 가격」 같은 걸 뽑을 때 유용합니다.
한 줄 요약
BeautifulSoup은 HTML을 객체로 변환해 find·find_all·CSS select로 탐색합니다.
파서는 lxml이 빠르고, .text·.get(attr)으로 데이터 추출합니다.
더 알아볼 것
- CSS 셀렉터 vs find_all
- lxml vs html.parser
- BeautifulSoup으로 못하면 Selenium