[Python][bs4] BeautifulSoup4에서 텍스트로 파싱하기
[Python][bs4] BeautifulSoup4에서 텍스트로 파싱하기
저번에 파이썬으로 웹 크롤링을 할 수 있는 BeautifulSoup 라이브러리에 대해 간략하게 포스팅을 했었다.
이번에 BS4를 이용하여 HTML 문서를 파싱을 해야하는 일이 있었는데, 해당 문서가 tag만 있고 id값이나 class값이 없어 원하는 값을 파싱하기 매우 곤란한 상황이였다...😥
믿을건 태그값 내의 텍스트 밖에 없어서, 이번 포스팅에서 bs4를 이용해 텍스트 데이터를 파싱하는 방법에 대해 알아보고자 한다.
BeautifulSoup4의 기본 사용법은 다음 포스팅을 참고하면 된다.
[Python] Beautiful Soup(bs4)
[Python] Beautiful Soup(bs4)파이썬(Python)에는 여러 웹 스크래핑 라이브러리가 있지만,그 중에서도 bs4는 HTML과 XML문서를 파싱하는 데 있어 간편성과 효율성으로 많은 사랑을 받고 있다. Beautiful Soup
heywantodo.tistory.com
전체 텍스트 추출
HTML 문서에서 모든 텍스트 테이터를 한번에 추출하려면, get_text() 메서드를 사용한다.
이 메서드는 HTML 태그를 무시하고 문서 내의 텍스트만 반환한다.
text = soup.get_text()
print(text)
특정 태그의 텍스트 추출
특정 태그의 텍스트만 추출하고 싶다면 find() 또는 find_all() 메서드를 사용할 수 있다.
예를 들어, <p> 태그 내의 텍스트만 추출하려면 다음과 같이 코드를 작성한다.
p_tag = soup.find('p')
print(p_tag.get_text())
# 모든 태그의 텍스트 추출
p_tag = soup.find_all('p')
for tag in p_tags:
print(tag.get_text())
클래스나 ID로 텍스트 추출
HTML 태그에 class나 id 속성이 있을 경우, 이를 기반으로 텍스트를 필터링할 수 있다.
예를 들어, 클래스가 "description"인 태그의 텍스트만 추출하려면 다음과 같이 할 수 있다.
description = soup.find('p', class_='desciption')
print(description.get_text())