반응형
1. 이전 강의 리뷰
이전 강의에서는 Scrapy 프레임워크를 활용하여 뉴스 데이터를 크롤링하고 SQLite 데이터베이스에 저장하는 방법을 배웠습니다. 이번 강의에서는 Scrapy 크롤링을 자동화하고, 크론잡(Cron Job) 및 Airflow를 사용하여 데이터 수집 파이프라인을 구축하는 방법을 배워보겠습니다.
2. 크롤링 자동화의 필요성
웹 크롤링은 주기적으로 데이터를 수집할 때 진정한 가치를 발휘합니다. 예를 들어, 매일 아침 뉴스 데이터를 수집하거나, 매주 특정 사이트에서 상품 정보를 업데이트하는 등의 작업을 자동화하면 시간과 노력을 절약할 수 있습니다.
3. 크론잡(Cron Job)을 활용한 Scrapy 자동화
✅ 크론잡이란?
- 크론잡은 리눅스/유닉스 기반 시스템에서 특정 시간마다 명령어를 자동 실행할 수 있는 도구입니다.
🔹 크론잡 설정 방법
- 터미널에서 크론 편집기 열기
- crontab -e
- 크롤링 스케줄 추가매일 오전 9시에 Scrapy news Spider를 실행하고, 날짜가 포함된 JSON 파일로 결과를 저장합니다.
- 0 9 * * * /usr/bin/scrapy crawl news -o news_$(date +\%Y-\%m-\%d).json
- 크론잡 확인
- crontab -l
결과: 매일 설정된 시간에 자동으로 크롤러가 실행되고 데이터가 저장됩니다.
🔹 추가 예제: 매주 월요일 오전 8시에 크롤링
0 8 * * 1 /usr/bin/scrapy crawl news -o weekly_news.json
4. Apache Airflow를 이용한 데이터 파이프라인 구축
✅ Apache Airflow란?
- Airflow는 워크플로우를 관리할 수 있는 오픈소스 도구로, 데이터 수집, 가공, 저장 등의 과정을 파이프라인으로 구성하여 주기적으로 실행할 수 있습니다.
🔹 Airflow 설치
pip install apache-airflow
🔹 Airflow 프로젝트 설정
airflow db init
airflow users create --username admin --password admin --role Admin --email admin@example.com
🔹 Scrapy 크롤링 DAG 작성
Airflow의 DAG(Directed Acyclic Graph)는 작업 흐름을 의미합니다.
from airflow import DAG
from airflow.operators.bash import BashOperator
from datetime import datetime
default_args = {
'owner': 'airflow',
'start_date': datetime(2024, 2, 1),
'retries': 1
}
dag = DAG('scrapy_news_crawl', default_args=default_args, schedule_interval='@daily')
crawl_task = BashOperator(
task_id='run_scrapy',
bash_command='scrapy crawl news -o /path/to/news_{{ ds }}.json',
dag=dag
)
결과: Airflow 웹 인터페이스에서 DAG를 실행하거나, 매일 자동으로 Scrapy 크롤러가 실행됩니다.
🔹 추가 예제: 매월 1일 실행하는 Airflow DAG
dag = DAG('monthly_crawl', default_args=default_args, schedule_interval='0 0 1 * *')
반응형
5. 크롤링 자동화 결과 확인
✅ 크론잡 실행 결과
ls news_*.json
- 매일 수집된 JSON 파일 리스트가 출력됩니다.
✅ Airflow 실행 결과
- **Airflow 웹 인터페이스(http://localhost:8080)**에서 DAG 상태 확인 및 실행 로그를 모니터링할 수 있습니다.
6. 크론잡과 Airflow의 관계
크론잡은 개별 작업을 주기적으로 실행하는 도구이고, Airflow는 복잡한 작업 흐름을 관리하는 도구입니다.
- 크론잡은 간단한 주기적 실행에 적합하지만, 여러 단계의 작업이 필요할 때는 설정이 어렵습니다.
- Airflow는 크론잡보다 복잡한 작업을 시각적으로 관리할 수 있으며, 크론잡을 내부적으로 포함할 수도 있습니다.
크론잡은 Airflow에서 개별 작업 단위로 활용될 수 있으며, Airflow는 크론잡을 더 효율적이고 관리하기 쉽게 만들어줍니다.
🎯 이번 강의를 마치며
이번 강의에서는 Scrapy 크롤러를 자동화하는 방법을 배웠습니다.
- 크론잡을 사용하여 특정 시간마다 크롤링 자동 실행
- Apache Airflow로 복잡한 데이터 파이프라인 관리
- 자동화된 크롤링 결과 확인
추가 예제로 매주, 매월 실행하는 크론잡과 Airflow DAG를 제공했습니다.
이제 여러분도 데이터 수집 자동화 전문가가 될 준비가 되었습니다! 🚀
🚀 다음 강의 예고
8부: Scrapy에서 수집한 데이터 시각화 및 분석
- pandas와 matplotlib을 사용한 데이터 분석
- 크롤링된 데이터의 시각화
- 데이터 인사이트 도출 및 활용
반응형
'파이썬 > [파이썬을 활용한 웹 크롤링 완벽 가이드]' 카테고리의 다른 글
📌 6. Scrapy를 활용한 실전 프로젝트 (SQLite 데이터베이스 버전) (0) | 2025.02.13 |
---|---|
📌 5. Scrapy 프레임워크를 활용한 크롤링 (2) | 2025.02.12 |
📌 4. 크롤링 데이터 정제 및 저장하기 (2) | 2025.02.11 |
📌 3. selenium을 이용한 동적 웹페이지 크롤링 (0) | 2025.02.10 |
📌 2. requests와 BeautifulSoup을 활용한 기초 크롤링 (0) | 2025.02.09 |
댓글