FastAPI로 웹 크롤러 만들기

FastAPI는 Python으로 빠르게 웹 애플리케이션을 개발할 수 있는 고성능 웹 프레임워크입니다. 이번 포스트에서는 FastAPI를 사용하여 간단한 웹 크롤러를 만드는 방법을 알아보겠습니다.

필요한 패키지 설치하기

먼저 FastAPI와 웹 크롤링에 사용할 requests와 BeautifulSoup 패키지를 설치해야 합니다. 아래의 명령어를 사용하여 패키지를 설치합니다.

pip install fastapi requests beautifulsoup4

FastAPI 앱 생성하기

FastAPI 앱을 생성하기 위해 다음의 코드를 작성합니다.

from fastapi import FastAPI

app = FastAPI()

크롤링 함수 작성하기

이제 웹 크롤링을 수행할 함수를 작성합니다. 아래의 코드는 예시로 네이버 홈페이지에서 실시간 검색어를 크롤링하는 함수입니다.

import requests
from bs4 import BeautifulSoup

def get_realtime_keywords():
    url = "https://www.naver.com"
    response = requests.get(url)
    soup = BeautifulSoup(response.text, "html.parser")
    keywords = [kw.text for kw in soup.select(".PM_CL_realtimeKeyword_rolling .ah_r")]
    return keywords

API 엔드포인트 추가하기

위에서 작성한 크롤링 함수를 FastAPI의 엔드포인트로 등록합니다. 아래의 코드를 추가합니다.

@app.get("/realtime_keywords")
def get_realtime_keywords_endpoint():
    return get_realtime_keywords()

앱 실행하기

이제 앱을 실행하고 웹 브라우저나 API 테스트 도구를 사용하여 http://localhost:8000/realtime_keywords에 접속하면 실시간 검색어 목록이 반환됩니다. 앱을 실행하는 방법은 아래의 코드를 사용합니다.

if __name__ == "__main__":
    import uvicorn
    uvicorn.run(app, host="0.0.0.0", port=8000)

마치며

FastAPI를 사용하여 웹 크롤러를 만드는 방법을 알아보았습니다. FastAPI는 빠른 속도와 간편한 개발 경험을 제공하기 때문에 웹 크롤링 앱과 같은 고성능 애플리케이션 개발에 매우 유용합니다. 이번 예제는 간단한 크롤링 함수를 사용했지만, FastAPI를 활용하여 더 복잡하고 다양한 크롤링 작업을 수행할 수도 있습니다.

#FastAPI #웹크롤러