[python] 파이썬 BeautifulSoup으로 테이블 데이터 추출하기

파이썬의 BeautifulSoup 라이브러리는 웹 스크래핑 작업에 유용한 도구입니다. 이번 포스트에서는 BeautifulSoup을 사용하여 HTML 테이블에서 데이터를 추출하는 방법을 살펴보겠습니다.

라이브러리 설치

먼저 BeautifulSoup 라이브러리를 설치해야 합니다. 아래의 명령을 사용하여 설치할 수 있습니다.

pip install beautifulsoup4

HTML 테이블 구조 확인하기

웹페이지에서 테이블 데이터를 추출하려면 먼저 HTML 테이블의 구조를 확인해야 합니다. 웹 브라우저 개발자 도구를 사용하여 HTML 코드를 살펴볼 수 있습니다.

HTML 파싱하기

BeautifulSoup을 사용하여 HTML 코드를 파싱한 후, 원하는 데이터를 추출할 수 있습니다. 아래의 코드는 HTML 파일을 읽어온 후 BeautifulSoup 객체를 생성하는 예시입니다.

from bs4 import BeautifulSoup

with open("index.html", "r") as file:
    html = file.read()

soup = BeautifulSoup(html, 'html.parser')

테이블 데이터 추출하기

BeautifulSoup 객체를 사용하여 테이블 데이터를 추출할 수 있습니다. find() 또는 find_all() 메서드를 사용하여 원하는 태그를 찾은 후, 해당 태그 안에 있는 데이터를 추출할 수 있습니다.

다음은 테이블에서 모든 데이터를 추출하는 예시입니다.

table = soup.find('table')

for row in table.find_all('tr'):
    for column in row.find_all('td'):
        print(column.get_text())

특정 조건을 만족하는 테이블 데이터 추출하기

특정 조건을 만족하는 테이블 데이터를 추출하려면, find() 또는 find_all() 메서드에 attrs 매개변수를 사용하여 원하는 속성값을 필터링할 수 있습니다. 아래의 코드는 속성값이 “class”가 “highlight”인 테이블 데이터를 추출하는 예시입니다.

table = soup.find('table')

for row in table.find_all('tr'):
    for column in row.find_all('td', attrs={'class': 'highlight'}):
        print(column.get_text())

위의 예시에서는 class 속성의 값이 “highlight”인 td 태그 안에 있는 데이터를 추출하고 있습니다.

결론

이렇게 BeautifulSoup을 사용하여 HTML 테이블에서 데이터를 추출하는 방법을 알아보았습니다. BeautifulSoup은 다양한 기능을 제공하기 때문에 웹 스크래핑 작업에 유용하게 사용될 수 있습니다. 자세한 내용은 공식문서를 참조하세요.