[파이썬] 웹 페이지의 테이블 추출

웹 페이지에서 테이블 데이터를 추출하는 것은 데이터 크롤링, 웹 스크래핑 및 데이터 분석에 매우 유용한 작업입니다. 이러한 테이블 데이터를 추출하면 웹 페이지의 구조화된 정보를 쉽게 사용할 수 있으며, 필요한 데이터를 추출하고 변환하는 데 도움이 됩니다.

이번 포스트에서는 Python을 사용하여 웹 페이지에서 테이블 데이터를 추출하는 방법을 살펴보겠습니다.

라이브러리 설치

데이터 추출을 위해 우리는 BeautifulSoup 라이브러리를 사용할 것입니다. 아래의 명령을 터미널에서 실행하여 라이브러리를 설치합니다.

pip install beautifulsoup4

웹 페이지에서 테이블 추출하기

우리는 예시로 테스트할 웹 페이지에서 테이블 데이터를 추출해보겠습니다. 아래와 같은 HTML 코드로 구성된 테이블을 추출할 것입니다.

<table>
    <tr>
        <th>이름</th>
        <th>나이</th>
        <th>직업</th>
    </tr>
    <tr>
        <td>John</td>
        <td>28</td>
        <td>개발자</td>
    </tr>
    <tr>
        <td>Jane</td>
        <td>32</td>
        <td>디자이너</td>
    </tr>
    <tr>
        <td>Mike</td>
        <td>25</td>
        <td>마케팅</td>
    </tr>
</table>

위에서 설치한 BeautifulSoup를 사용하여 이 테이블 데이터를 추출하는 코드를 작성해보겠습니다.

from bs4 import BeautifulSoup

html = '''
<table>
    <tr>
        <th>이름</th>
        <th>나이</th>
        <th>직업</th>
    </tr>
    <tr>
        <td>John</td>
        <td>28</td>
        <td>개발자</td>
    </tr>
    <tr>
        <td>Jane</td>
        <td>32</td>
        <td>디자이너</td>
    </tr>
    <tr>
        <td>Mike</td>
        <td>25</td>
        <td>마케팅</td>
    </tr>
</table>
'''

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

table = soup.find('table')  # 테이블 요소 찾기

rows = table.find_all('tr')  # 모든 행 찾기
for row in rows:
    cells = row.find_all('td')  # 각 행의 셀 찾기
    for cell in cells:
        print(cell.text)  # 텍스트 출력
    print('---')  # 행 구분

위의 코드는 해당하는 테이블의 각 셀을 출력합니다. 결과는 다음과 같습니다.

John
28
개발자
---
Jane
32
디자이너
---
Mike
25
마케팅
---

이렇게 웹 페이지에서 테이블 데이터를 추출하는 간단한 예를 살펴보았습니다. BeautifulSoup 라이브러리는 다양한 기능을 제공하므로 복잡한 테이블 구조에서도 데이터 추출을 할 수 있습니다. 이를 통해 웹 페이지의 테이블 데이터를 손쉽게 활용할 수 있습니다.

Python의 BeautifulSoup를 사용하여 웹 페이지에서 테이블 데이터를 추출하는 방법에 대해 알아보았습니다. 이를 응용하여 다양한 웹 페이지에서 원하는 데이터를 추출해보세요. Happy coding!