[python] Beautiful Soup로 웹 페이지에서 특정 폼 요소 속성 추출하기

Beautiful Soup은 파이썬의 웹 스크래핑 라이브러리로, HTML 및 XML 문서를 파싱하여 데이터를 추출하는 데 사용됩니다. 이 글에서는 Beautiful Soup을 사용하여 웹 페이지에서 특정 폼 요소의 속성을 추출하는 방법을 알아보겠습니다.

1. Beautiful Soup 설치하기

Beautiful Soup을 사용하기 위해 먼저 아래의 명령어를 사용하여 Beautiful Soup을 설치해야 합니다.

pip install beautifulsoup4

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

Beautiful Soup을 사용하여 웹 페이지의 HTML을 가져오기 위해 requests 라이브러리를 사용합니다. 아래의 예제 코드를 통해 웹 페이지의 HTML을 가져옵니다.

import requests
from bs4 import BeautifulSoup

# 웹 페이지 URL
url = "https://example.com"

# GET 요청으로 HTML 가져오기
response = requests.get(url)

# HTTP 요청이 성공한 경우에만 계속 진행
if response.status_code == 200:
    html = response.text
else:
    print("웹 페이지를 가져오는 데 실패했습니다.")

3. HTML 파싱하기

Beautiful Soup을 사용하여 가져온 HTML을 파싱합니다. 아래의 코드를 사용하여 BeautifulSoup 객체를 생성합니다.

# BeautifulSoup 객체 생성
soup = BeautifulSoup(html, "html.parser")

4. 폼 요소 속성 추출하기

특정 폼 요소의 속성을 추출하기 위해 BeautifulSoup의 find() 또는 find_all() 메서드를 사용합니다. 아래의 코드는 find() 메서드를 사용하여 웹 페이지에서 첫 번째 폼 요소를 찾고, 해당 폼 요소의 action 속성값을 출력하는 예제입니다.

# 첫 번째 폼 요소를 찾아서 action 속성값 출력
form = soup.find("form")
if form:
    action = form.get("action")
    print("폼 요소의 action 속성값:", action)
else:
    print("해당하는 폼 요소를 찾을 수 없습니다.")

만약 웹 페이지에 여러 개의 폼 요소가 있다면 find_all() 메서드를 사용하여 모든 폼 요소를 추출할 수 있습니다. 아래의 예제는 모든 폼 요소의 action 속성값을 출력하는 코드입니다.

# 모든 폼 요소의 action 속성값 출력
forms = soup.find_all("form")
if forms:
    for form in forms:
        action = form.get("action")
        print("폼 요소의 action 속성값:", action)
else:
    print("해당하는 폼 요소를 찾을 수 없습니다.")

마무리

이번 글에서는 Beautiful Soup을 사용하여 웹 페이지에서 특정 폼 요소의 속성을 추출하는 방법을 알아보았습니다. Beautiful Soup을 활용하면 웹 스크래핑 작업을 편리하게 수행할 수 있으며, 다양한 데이터를 추출하는 데 도움이 될 것입니다.

더 자세한 사용법은 Beautiful Soup의 공식 문서를 참조하시기 바랍니다.