FastAPI를 사용하여 웹사이트 스크랩핑 서비스 구현하기

서비스 개요

이번 프로젝트에서는 FastAPI를 사용하여 웹사이트 스크랩핑 서비스를 구현하려고 합니다. 이 서비스는 사용자가 웹사이트 URL을 입력하면 해당 웹사이트에서 정보를 스크랩하여 반환하는 기능을 제공합니다.

프로젝트 구현

FastAPI 설치 및 설정

먼저, 프로젝트에 FastAPI를 설치해야 합니다. 아래의 명령어를 사용하여 FastAPI를 설치합니다.

pip install fastapi

다음으로, FastAPI 애플리케이션을 생성하기 위해 아래와 같이 main.py 파일을 생성합니다.

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def read_root():
    return {"Hello": "World"}

웹사이트 스크랩핑 기능 구현

위의 코드에서 read_root 함수를 웹사이트 스크랩핑 기능으로 변경합니다. 스크랩핑을 위해 requestsbeautifulsoup4 라이브러리를 사용할 것입니다. 아래의 명령어를 사용하여 이 두 라이브러리를 설치합니다.

pip install requests beautifulsoup4

아래의 코드를 main.py 파일에 추가하여 웹사이트 스크랩핑 기능을 구현합니다.

import requests
from bs4 import BeautifulSoup

@app.get("/scrape")
def scrape_website(url: str):
    response = requests.get(url)
    soup = BeautifulSoup(response.text, 'html.parser')
    
    # 원하는 정보를 추출하는 코드 작성
    
    return {"result": "Scraped Data"}

위의 코드에서는 scrape_website 함수를 생성하였고, url 파라미터로 입력된 웹사이트의 정보를 스크랩핑하여 반환하게 됩니다. 원하는 정보를 추출하는 방법은 BeautifulSoup 라이브러리를 사용하여 웹페이지의 HTML 구조를 파싱하고 필요한 정보를 추출하는 방식으로 진행하면 됩니다.

서비스 배포

FastAPI는 내장된 개발 서버를 사용하여 애플리케이션을 실행할 수 있지만, 실제 운영 환경에서는 Gunicorn과 같은 WSGI 서버와 결합하여 배포하는 것이 일반적입니다.

Gunicorn을 설치하려면 아래의 명령어를 실행하세요.

pip install gunicorn

그리고 아래의 명령어를 사용하여 FastAPI 애플리케이션을 실행합니다.

gunicorn -w 4 -k uvicorn.workers.UvicornWorker main:app

위의 명령어는 4개의 worker를 사용하여 FastAPI 애플리케이션을 실행하는 예시입니다.

테스트

FastAPI는 내장된 Swagger UI를 통해 API 문서와 테스트 기능을 제공합니다. 애플리케이션을 실행한 뒤 브라우저에서 다음 주소를 열어 API 테스트를 진행할 수 있습니다.

http://localhost:8000/docs

마무리

이렇게 FastAPI를 사용하여 웹사이트 스크랩핑 서비스를 구현할 수 있습니다. FastAPI의 강력한 기능과 뛰어난 성능을 활용하여 신속하고 안정적인 웹 서비스를 개발할 수 있습니다.

#FastAPI #웹스크랩핑