topic★★★★★난이도
BeautifulSoup — 웹 페이지에서 데이터 추출
HTML 페이지를 파싱하여 원하는 데이터만 뽑아내는 웹 크롤링 라이브러리.
#BeautifulSoup#크롤링#HTML파싱#웹스크래핑
왜 배우는가
뉴스 제목, 상품 가격, 랭킹 등 웹에 공개된 데이터를 자동으로 수집할 수 있다. 데이터 수집 자동화의 첫 번째 도구.
BeautifulSoup(BS4)은 HTML 소스코드에서 원하는 태그·클래스·텍스트를 찾아서 추출하는 도구다. 마치 웹 페이지에서 Ctrl+F로 검색하듯, 코드로 원하는 데이터만 골라낸다.
| 용도 | 설명 |
|---|---|
| `BeautifulSoup(html, 'html.parser')` | HTML 문자열을 파싱 객체로 변환 |
| `soup.select('css선택자')` | CSS 선택자로 태그 찾기 |
| `soup.find('tag', class_='cls')` | 조건에 맞는 첫 번째 태그 |
| `soup.find_all('a')` | 조건에 맞는 모든 태그 (리스트) |
| `tag.text` / `tag['href']` | 태그의 텍스트 / 속성값 추출 |
requests로 HTML을 가져오고, BeautifulSoup으로 파싱한 뒤 CSS 선택자(.select)로 원하는 요소를 추출한다. .text로 텍스트만, ['href']로 링크를 가져온다.
Claude Code에서 "이 웹사이트에서 상품명과 가격을 크롤링해줘"라고 하면 BS4 코드를 생성한다. 대상 URL을 주면 HTML 구조를 분석해서 적절한 CSS 선택자를 잡아준다. 단, robots.txt와 이용약관을 반드시 확인하자.