[python] Beautiful Soup로 웹 페이지의 모든 테이블 데이터 추출하기

웹 스크래핑은 웹 페이지에서 데이터를 추출하는 프로세스로, Python의 Beautiful Soup 라이브러리는 이를 간편하게 수행할 수 있는 도구입니다. 이번 포스트에서는 Beautiful Soup를 사용하여 웹 페이지에서 모든 테이블 데이터를 추출하는 방법을 알아보겠습니다.

1. Beautiful Soup 설치하기

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

pip install beautifulsoup4

2. 웹 페이지에서 데이터 가져오기

Beautiful Soup를 사용하기 위해 먼저 웹 페이지의 HTML 데이터를 가져와야 합니다. 이를 위해서는 Python의 requests 라이브러리를 사용할 수 있습니다. 아래의 예제 코드를 참고하세요.

import requests

url = "https://www.example.com"
response = requests.get(url)
html_data = response.text

위 코드에서는 requests 라이브러리를 사용하여 “https://www.example.com” 주소로 GET 요청을 보내고, 해당 웹 페이지의 HTML 데이터를 html_data 변수에 저장합니다.

3. Beautiful Soup로 테이블 데이터 추출하기

이제 Beautiful Soup를 사용하여 테이블 데이터를 추출해보겠습니다. 아래의 예제 코드를 참고하세요.

from bs4 import BeautifulSoup

soup = BeautifulSoup(html_data, 'html.parser')
tables = soup.find_all('table')

for table in tables:
    rows = table.find_all('tr')
    
    for row in rows:
        cells = row.find_all('td')
        
        for cell in cells:
            print(cell.text)

위 코드에서는 Beautiful Soup의 find_all() 메서드를 사용하여 HTML 페이지의 모든 테이블을 찾습니다. 그런 다음 각 테이블의 모든 행을 가져와서 각 행의 모든 셀을 가져옵니다. 마지막으로, 각 셀의 텍스트를 출력합니다.

4. 결과 확인하기

위의 코드를 실행하면 웹 페이지에서 모든 테이블 데이터가 추출되고, 각 셀의 텍스트가 출력됩니다. 웹 페이지의 테이블 구조에 따라 코드를 조정하여 원하는 데이터를 추출할 수 있습니다.

이제 Beautiful Soup를 사용하여 웹 페이지의 모든 테이블 데이터를 추출하는 방법에 대해 알아보았습니다. 다음 번 포스트에서는 추출한 데이터를 저장하거나 다양한 형태로 가공하는 방법에 대해 알아보겠습니다.

참고 자료