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 #웹크롤러