[python] 파이썬 BeautifulSoup으로 웹 사이트 검색 기능 추가

지금은 웹 사이트에서 사용자가 입력한 검색어에 따라 컨텐츠를 검색하는 웹 사이트가 많이 나와있습니다. 이러한 검색 기능을 구현하려면 파싱(parsing) 라이브러리인 BeautifulSoup을 사용할 수 있습니다.

BeautifulSoup이란?

BeautifulSoup은 HTML과 XML 문서를 파싱하여 원하는 정보를 추출하는 파이썬 라이브러리입니다. 간단한 인터페이스와 유연한 기능을 제공하기 때문에 웹 스크래핑이나 데이터 마이닝 작업에 많이 사용됩니다.

필요한 패키지 설치하기

먼저 BeautifulSoup을 사용하기 위해 필요한 패키지를 설치해야 합니다. 파이썬 패키지 관리자인 pip를 사용하여 설치할 수 있습니다.

pip install beautifulsoup4

웹 사이트에서 데이터 가져오기

웹 사이트에서 데이터를 가져오려면 해당 웹 페이지의 HTML 코드를 가져와야 합니다. requests 라이브러리를 사용하여 웹 페이지에 HTTP 요청을 보내고 응답을 받아올 수 있습니다.

import requests

response = requests.get("http://www.example.com")
html_content = response.text

print(html_content)

검색 기능 추가하기

가져온 HTML 코드에서 사용자가 입력한 검색어를 찾아주는 함수를 만들어 봅시다.

from bs4 import BeautifulSoup

def search_keyword(html, keyword):
    soup = BeautifulSoup(html, "html.parser")
    results = soup.find_all(string=keyword)
    return results

위의 함수는 BeautifulSoup의 find_all 메소드를 사용하여 HTML 코드에서 해당 키워드를 포함한 모든 요소를 찾아 리스트로 반환합니다.

검색 결과 출력하기

이제 검색한 결과를 출력해보겠습니다.

keyword = "example"
search_results = search_keyword(html_content, keyword)

if len(search_results) > 0:
    print(f"검색 결과: '{keyword}'가 포함된 요소가 {len(search_results)}개 있습니다.")
    for result in search_results:
        print(result)
else:
    print("검색 결과: 해당 키워드를 포함한 요소가 없습니다.")

위의 코드는 search_keyword 함수를 사용하여 검색 결과를 받아오고, 결과가 존재할 경우 결과 개수와 요소의 내용을 출력합니다.

마무리

이제 파이썬 BeautifulSoup을 사용하여 웹 사이트에서 검색 기능을 추가하는 방법을 알아보았습니다. BeautifulSoup은 강력한 파싱 기능을 제공하기 때문에 웹 스크래핑 등 다양한 작업에 활용될 수 있습니다.