[python] FastAPI에서 웹 스크래핑 구현하기

FastAPI는 Python으로 웹 서버를 빠르게 구축할 수 있는 강력한 프레임워크입니다. 이제 FastAPI를 사용하여 웹 스크래핑 기능을 구현해보겠습니다.

필요한 패키지 설치

먼저, 필요한 패키지를 설치해야 합니다. 아래 명령어를 사용하여 필요한 패키지를 설치합니다.

pip install fastapi
pip install httpx
pip install beautifulsoup4

웹 스크래핑 기능 구현하기

FastAPI를 사용하여 웹 스크래핑을 구현하기 위해 다음 단계를 따릅니다.

  1. FastAPI 애플리케이션 만들기:
    from fastapi import FastAPI
    app = FastAPI()
    
  2. 필요한 패키지 가져오기:
    import httpx
    from bs4 import BeautifulSoup
    
  3. 스크래핑할 웹 사이트 URL과 스크래핑할 정보의 CSS 선택자(def_selector)를 정의합니다:
    url = 'http://example.com'
    def_selector = 'h1'
    
  4. FastAPI 엔드포인트(Endpoint) 생성하기:
    @app.get('/scrape')
    def scrape_website():
        response = httpx.get(url)
        soup = BeautifulSoup(response.content, 'html.parser')
        result = soup.select_one(def_selector).text
        return {'result': result}
    
  5. FastAPI 애플리케이션 실행하기:
    if __name__ == '__main__':
        import uvicorn
        uvicorn.run(app, host='0.0.0.0', port=8000)
    

위 코드에서 url은 스크래핑할 웹 사이트 주소를, def_selector는 원하는 정보의 CSS 선택자를 지정합니다. 엔드포인트인 /scrape은 GET 메서드로 호출되면 스크래핑을 수행하고 결과를 반환합니다.

애플리케이션 실행하기

아래 명령어를 사용하여 웹 스크래핑 애플리케이션을 실행합니다.

uvicorn main:app --reload

애플리케이션이 실행되면 웹 브라우저나 API 테스트 도구로 http://localhost:8000/scrape에 접속하면 스크래핑 결과를 확인할 수 있습니다.

결론

FastAPI를 사용하여 웹 스크래핑을 구현하는 방법을 알아보았습니다. FastAPI의 뛰어난 성능과 간편한 문법으로 웹 스크래핑 기능을 구현할 수 있습니다. 이를 활용하여 다양한 웹 스크래핑 작업을 수행해보세요.

참고 자료