이번 포스트에서는 Python 프레임워크인 Flask를 이용하여 웹 크롤링과 스크래핑을 하는 방법에 대해 알아보겠습니다. 웹 크롤링은 인터넷 상의 웹 페이지를 추출하고 데이터를 수집하는 작업을 의미하며, 스크래핑은 수집된 데이터를 분석하여 원하는 정보를 추출하는 과정입니다.
Flask란?
Flask는 웹 개발을 위한 Python 마이크로 프레임워크로써, 가볍고 간단한 구조를 가지고 있습니다. Flask는 웹 크롤링과 스크래핑 작업을 쉽게 구현할 수 있는 기능들을 제공합니다.
필요한 라이브러리 설치하기
먼저, 웹 크롤링 및 스크래핑을 위해 필요한 라이브러리들을 설치해야 합니다. pip를 사용하여 다음과 같이 라이브러리를 설치합니다:
pip install flask
pip install requests
pip install beautifulsoup4
웹 크롤링하기
Flask를 사용하여 웹 크롤링을 하기 위해서는 requests와 BeautifulSoup 라이브러리가 필요합니다. requests는 웹 페이지를 손쉽게 요청할 수 있는 기능을 제공하고, BeautifulSoup는 HTML 페이지를 파싱하는 기능을 제공합니다.
다음은 Flask를 사용하여 웹 페이지를 크롤링하는 코드입니다:
from flask import Flask
import requests
from bs4 import BeautifulSoup
app = Flask(__name__)
@app.route('/')
def crawl_page():
# 웹 페이지 가져오기
url = 'https://example.com'
response = requests.get(url)
html = response.text
# BeautifulSoup을 사용하여 HTML 파싱하기
soup = BeautifulSoup(html, 'html.parser')
# 추출한 정보 출력하기
title = soup.title.text
return f'Title: {title}'
if __name__ == '__main__':
app.run()
위의 코드에서는 Flask 앱을 생성한 후, ‘/’ 경로로 접속했을 때 해당 웹 페이지를 크롤링하고 문서의 제목을 출력하도록 설정하였습니다.
스크래핑하기
이제 웹 크롤링한 페이지에서 원하는 정보를 스크래핑하는 방법을 알아보겠습니다. 예를 들어, 웹 페이지에서 모든 링크를 추출하고 출력하는 기능을 구현해보겠습니다.
from flask import Flask
import requests
from bs4 import BeautifulSoup
app = Flask(__name__)
@app.route('/')
def scrape_page():
# 웹 페이지 가져오기
url = 'https://example.com'
response = requests.get(url)
html = response.text
# BeautifulSoup을 사용하여 HTML 파싱하기
soup = BeautifulSoup(html, 'html.parser')
# 모든 링크 추출하기
links = soup.find_all('a')
# 추출한 링크 출력하기
for link in links:
print(link['href'])
return 'Scraping finished'
if __name__ == '__main__':
app.run()
위의 코드에서는 ‘/’ 경로로 접속했을 때 웹 페이지에서 모든 링크를 추출하여 출력하도록 설정하였습니다.
마무리
이번 포스트에서는 Flask를 사용하여 웹 크롤링 및 스크래핑을 하는 방법을 알아보았습니다. Flask의 간편한 사용법과 requests, BeautifulSoup 라이브러리를 함께 활용하여 다양한 웹 크롤링 및 스크래핑 작업을 구현할 수 있습니다. Flask의 다양한 확장 기능과 함께 웹 데이터를 유용하게 사용할 수 있는 가능성을 열어보세요.