정중하고 빠른 웹 크롤러 구축: 얻은 교훈
2025-01-05
Mozilla 엔지니어인 Dennis Schubert는 분산형 오픈소스 소셜 네트워크인 Diaspora의 서버 부하의 70%가 몇몇 대기업의 LLM에 데이터를 제공하는 작동이 좋지 않은 봇에서 발생한다는 것을 최근에 발견했습니다. 총 트래픽의 40%를 차지하는 최악의 가해자는 OpenAI와 Amazon이었습니다. 이 글에서는 정중하고 빠른 웹 크롤러를 구축한 저자의 경험을 자세히 설명하고, 속도 제한, robots.txt 준수, 재페치 최소화, 효율적인 큐잉 등을 다룹니다. Python과 gevent를 사용하여 속도 제한을 위해 도메인별로 코루틴을 할당하고, Postgres를 효율적인 큐 관리 및 중복 제거에 사용합니다. 이 설계를 통해 대상 웹사이트를 존중하면서 빠르고 효율적인 크롤링이 가능합니다.