원문정보
Analysis and Design of an Extensible News Web Crawling Framework
초록
영어
This paper proposes a crawling architecture designed to address the maintenance and extensibility challenges of news website crawling. By combining Scrapy and Playwright, the framework efficiently handles both static and dynamic web pages. Its modular design—consisting of a Task Manager, Crawling Process, and DB Queue Handler—facilitates independent error handling, thereby reducing maintenance costs and improving overall extensibility. Through the inheritance structure of a BaseCrawler class, developers can quickly implement site-specific crawlers while minimizing code duplication. Static pages are primarily crawled using Scrapy to maximize speed, whereas Playwright is employed for dynamic pages requiring interactions such as comment retrieval. Experimental results show that Scrapy-based crawling is over ten times faster than dynamic crawling, confirming its capability to handle large-scale news data collection. All collected data is stored in JSON format, streamlining subsequent database integration and analysis. Future research will explore integrating LLM-based structural analysis with distributed load control to develop an even more comprehensive and reliable crawling solution.
한국어
본 논문은 뉴스 웹사이트 크롤링 과정에서 발생하는 유지보수성과 확장성 문제를 해결하기 위한 아키텍처를 제안한 다. 제안된 아키텍처는 Scrapy와 Playwright를 결합하여 정적·동적 페이지 모두를 효율적으로 처리할 수 있도록 설계되었 다. 작업 관리와 크롤링 프로세스, 데이터베이스 큐 처리자 등 세분화된 모듈 구성을 통해 각 단계에서 발생하는 오류를 독립 적으로 처리할 수 있으며 유지보수 비용을 낮추는 동시에 확장성을 높인다. BaseCrawler를 상속받아 각 언론사별 크롤러를 빠르게 개발할 수 있고, 공통 코드를 재사용함으로써 코드 중복을 줄였다. 정적 페이지는 Scrapy로 우선 처리해 속도를 높이 고 필요시 Playwright를 통해 동적 페이지에서 댓글 등의 상호작용 기반 데이터를 수집한다. 실험 결과 Scrapy 기반의 크롤 링이 동적 크롤링보다 10배 이상 빠른 성능을 보였으며 이를 통해 대규모 뉴스 기사 본문 데이터를 효율적으로 수집할 수 있 음을 확인했다. 수집된 데이터는 JSON 형식으로 저장되어 후속 데이터베이스 적재 및 분석 과정에서 용이하게 활용된다. 향 후 연구에서는 LLM 기반의 웹 구조 분석과 분산 노드 간 부하 제어 기술을 결합하여 더욱 완성도 높은 크롤링 프레임워크를 제안할 계획이다.
목차
Abstract
1. 서론
2. 관련 연구
2.1 Scrapy
2.2 Selenium과 Playwright
2.3 고품질 뉴스 데이터 수집
2.4 분산 크롤링 아키텍처
3. 프레임워크 아키텍처
3.1 작업 관리자(Task Manager)
3.2 크롤링 프로세스(Crawling Process)
3.3 데이터베이스 큐 처리자(DB queue handler)
3.4 정적/동적 상황을 고려한 성능 최적화
3.5 모듈 간 독립성과 유연성
4. 확장성을 고려한 아키텍처 설계
4.1 일반화된 크롤링 모듈
4.2 BaseCrawler 설계
4.3 효과성 확인
5. 결론
REFERENCES
