반응형
"Python BeautifulSoup 패키지"는 Python에서 HTML과 XML 파일을 파싱하는데 사용되는 패키지입니다. 이 패키지를 이용하면 편리하게 HTML/XML 파일에서 원하는 정보를 추출할 수 있습니다.
아래는 BeautifulSoup 패키지를 이용해 HTML 파일을 파싱하는 예제 코드입니다.
from bs4 import BeautifulSoup
html = """
<html>
<body>
<h1>Hello, World!</h1>
<p>This is a test.</p>
</body>
</html>
"""
soup = BeautifulSoup(html, 'html.parser')
# h1 태그를 찾아서 텍스트를 출력
h1 = soup.find('h1')
print(h1.text) # "Hello, World!"
# p 태그를 찾아서 텍스트를 출력
p = soup.find('p')
print(p.text) # "This is a test."
BeautifulSoup 패키지는 find()와 find_all() 함수를 제공합니다. find() 함수는 첫번째로 만난 태그를, find_all() 함수는 모든 태그를 반환합니다.
find()와 find_all() 함수를 이용하면서 태그를 검색할 때도 여러가지 조건을 설정할 수 있습니다. 아래는 클래스가 "test"인 태그를 찾는 예제 코드입니다.
from bs4 import BeautifulSoup
html = """
<html>
<body>
<div class="test">Hello, World!</div>
<p class="test">This is a test.</p>
</body>
</html>
"""
soup = BeautifulSoup(html, 'html.parser')
# 클래스가 "test"인 태그를 찾아서 텍스트를 출력
tags = soup.find_all(class_='test')
for tag in tags:
print(tag.text)
위 코드는 기본적인 사용법을 설명하였지만, 실제 업무에서는 다양한 요구사항에 맞게 코드를 수정해야 할 수 있습니다.
BeautifulSoup를 이용하여 parsing을 할 때는 주의해야 할 점도 있습니다.
- 첫번째로, 정확한 태그를 찾을 수 있도록 정확한 파서를 선택해야 합니다.
- 두번째로, 태그를 찾을 때 태그명이나 속성명이 대소문자를 구분하는 페이지라면 대소문자를 구분하여 검색해야 합니다.
아래는 잘못된 예제 코드입니다.
# 잘못된 예제
soup.find('div')
# <div> 태그를 찾아야 하는데 <Div> 태그를 찾아버림
soup.find_all(class_='Test')
# <div class="test"> 와 <p class="test">를 찾아야 하는데
# <div class="Test"> 와 <p class="Test">를 찾아버림
이와 같은 예외 상황을 방지하기 위해서는 정확한 태그명, 속성명, 파서를 사용하는 것이 중요합니다.
반응형
'파이썬' 카테고리의 다른 글
파이썬 유닛테스트 (0) | 2023.02.02 |
---|---|
파이썬 requests 라이브러리 이해하기 (0) | 2023.01.29 |
파이썬 웹 크롤링 이해하기 (0) | 2023.01.28 |
파이썬 인스턴스 메소드 이해하기 (0) | 2023.01.27 |
파이썬 스태틱메소드 이해하기 (0) | 2023.01.26 |
댓글