[파이썬] Flask로 크롤링 및 웹 스크래핑

Flask는 파이썬으로 작성된 웹 프레임워크로, 크롤링과 웹 스크래핑을 쉽게 구현할 수 있습니다. 이번 글에서는 Flask를 사용하여 웹 페이지를 크롤링하고, 스크래핑하는 방법을 알아보겠습니다.

1. Flask 설치

먼저 Flask를 설치해야 합니다. 아래의 명령어를 사용하여 Flask를 설치할 수 있습니다.

$ pip install flask

2. 웹 페이지 크롤링

크롤링을 위해서는 requests 모듈을 사용하여 웹 페이지에 요청을 보내야 합니다. Flask에서는 requests 모듈을 사용하기 위해 먼저 설치해야합니다.

$ pip install requests

다음은 Flask를 사용하여 웹 페이지를 크롤링하는 예제입니다.

from flask import Flask
import requests

app = Flask(__name__)

@app.route('/')
def crawl_website():
    url = "https://example.com"
    response = requests.get(url)
    return response.text

if __name__ == '__main__':
    app.run()

위 예제에서는 ‘/’ 경로에 대한 요청이 들어왔을 때 crawl_website 함수가 실행되며, 해당 함수에서는 requests.get() 메서드를 이용하여 “https://example.com”에 GET 요청을 보냅니다. 그리고 반환된 응답을 클라이언트에게 제공합니다.

3. 웹 페이지 스크래핑

스크래핑을 위해서는 beautifulsoup4 라이브러리를 사용할 수 있습니다. Flask에서는 beautifulsoup4 라이브러리를 사용하기 위해 먼저 설치해야 합니다.

$ pip install beautifulsoup4

다음은 Flask에서 BeautifulSoup를 사용하여 웹 페이지를 스크래핑하는 예제입니다.

from flask import Flask
import requests
from bs4 import BeautifulSoup

app = Flask(__name__)

@app.route('/')
def scrape_website():
    url = "https://example.com"
    response = requests.get(url)
    soup = BeautifulSoup(response.text, 'html.parser')
    # 원하는 스크래핑 작업을 수행합니다.
    # ...
    return scraped_data

if __name__ == '__main__':
    app.run()

위 예제에서는 ‘/’ 경로에 대한 요청이 들어왔을 때 scrape_website 함수가 실행되며, 해당 함수에서는 requests.get() 메서드를 이용하여 “https://example.com”에 GET 요청을 보냅니다. 그리고 반환된 응답을 BeautifulSoup를 사용하여 파싱하여 스크래핑 작업을 수행합니다.

위 예제에서는 스크래핑 작업을 수행한 후, scraped_data를 반환하도록 작성되어있습니다. 이렇게 반환된 데이터는 클라이언트에게 전송됩니다.

결론

이번 글에서는 Flask를 사용하여 웹 페이지를 크롤링하고, 스크래핑하는 방법에 대해 알아보았습니다. Flask는 간단하게 웹 크롤링 및 스크래핑을 구현할 수 있는 강력한 도구입니다. Flask를 사용하여 다양한 크롤링 및 스크래핑 작업을 수행해 보세요.