728x90
[Python][bs4] BeautifulSoup4에서 텍스트로 파싱하기
저번에 파이썬으로 웹 크롤링을 할 수 있는 BeautifulSoup 라이브러리에 대해 간략하게 포스팅을 했었다.
이번에 BS4를 이용하여 HTML 문서를 파싱을 해야하는 일이 있었는데, 해당 문서가 tag만 있고 id값이나 class값이 없어 원하는 값을 파싱하기 매우 곤란한 상황이였다...😥
믿을건 태그값 내의 텍스트 밖에 없어서, 이번 포스팅에서 bs4를 이용해 텍스트 데이터를 파싱하는 방법에 대해 알아보고자 한다.
BeautifulSoup4의 기본 사용법은 다음 포스팅을 참고하면 된다.
전체 텍스트 추출
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())
반응형
'👩💻 Develope > Python' 카테고리의 다른 글
[Python] 동시성 프로그래밍 (1) 프로세스, 스레드 (0) | 2024.11.05 |
---|---|
[Python] pip freeze 명령어 사용 시 패키지 버전이 제대로 나오지 않을 때 (0) | 2024.10.14 |
[Python] glob (1) | 2024.09.26 |
[Python] SQLAlchemy 이해하기 (0) | 2024.09.02 |
[Pandas] to.sql() (0) | 2024.08.23 |