PYTHON · 파일/IO
웹 스크래핑 (BeautifulSoup)
HTML 파싱과 데이터 추출의 기본 패턴입니다. BeautifulSoup의 주요 셀렉터를 다룹니다.
파일/IO중급BeautifulSoup스크래핑HTML파싱
핵심 설명
HTML 파싱과 데이터 추출의 기본 패턴입니다. BeautifulSoup의 주요 셀렉터를 다룹니다.
Python code
# BeautifulSoup 패턴 시뮬레이션
html = """
<html>
<body>
<h1 class="title">Python 뉴스</h1>
<ul id="articles">
<li class="article">
<a href="/post/1">첫 번째 글</a>
<span class="date">2024-01-15</span>
</li>
<li class="article">
<a href="/post/2">두 번째 글</a>
<span class="date">2024-01-16</span>
</li>
</ul>
</body>
</html>
"""
# 간단한 파서 (실제는 BeautifulSoup 사용)
import re
# 태그 내용 추출
titles = re.findall(r"<a[^>]*>(.*?)</a>", html)
dates = re.findall(r'class="date">(.*?)</span>', html)
links = re.findall(r'href="([^"]*)"', html)
for title, date, link in zip(titles, dates, links):
print(f" [{date}] {title} ({link})")
# BeautifulSoup 실사용 패턴
# from bs4 import BeautifulSoup
# soup = BeautifulSoup(html, "html.parser")
# for article in soup.select("li.article"):
# title = article.select_one("a").text
# link = article.select_one("a")["href"]
# date = article.select_one(".date").text
# print(f"[{date}] {title} ({link})")
print("웹 스크래핑 패턴 시연 완료")학습 팁
CSS 셀렉터(soup.select())가 find_all()보다 직관적입니다.
주의할 점
정규식으로 HTML을 파싱하면 중첩 태그, 속성 순서 등에서 오류가 발생합니다. 반드시 전용 파서를 사용하세요.
자주 묻는 질문
웹 스크래핑 (BeautifulSoup)란 무엇인가요?
HTML 파싱과 데이터 추출의 기본 패턴입니다. BeautifulSoup 의 주요 셀렉터를 다룹니다.
웹 스크래핑 (BeautifulSoup) 학습 시 주의할 점은 무엇인가요?
정규식으로 HTML을 파싱하면 중첩 태그, 속성 순서 등에서 오류가 발생합니다. 반드시 전용 파서를 사용하세요.
Continue Learning
Python 학습을 이어가세요
총 200개의 독립 HTML 학습 문서 중 하나입니다. 각 문서는 고유 URL과 canonical 메타데이터를 가집니다.