프로젝트 소개

AnimeLek Scraper는 animelek.vip 웹사이트를 스크래핑하도록 설계된 Python 기반 도구입니다. 이 도구는 애니메이션 카탈로그의 모든 83페이지를 체계적으로 크롤링하여 각 애니메이션의 메타데이터(제목, 포스터, 상태, 장르, 설명, 스튜디오, 연도)와 함께 에피소드 목록, 시청 서버 URL(data-ep-url), 각 에피소드별 다운로드 링크를 수집합니다. 스크레이퍼는 구조화된 JSON 파일을 출력합니다. 애니메이션 객체 배열을 포함하는 포괄적인 `data/animes.json` 파일과 `data/episodes/` 디렉토리 아래 각 에피소드에 대한 개별 JSON 파일이 생성됩니다. 또한 진행 상황을 추적하기 위해 `state.json` 파일을 유지하여 재개 가능한 실행을 지원합니다. 사용자는 Ctrl+C로 안전하게 중단한 후 완료된 항목을 다시 스크래핑하지 않고 재시작할 수 있습니다. 순환 로그 파일(`scraper.log`)이 활동을 기록합니다. 로컬 사용을 위해 이 도구는 Python과 `requirements.txt`에 나열된 종속성이 필요합니다. 공개 페이지를 가져오기 위해 `cloudscraper`와 `BeautifulSoup`을 사용하며, 유료 API는 포함되지 않습니다. 탐지 방지 조치로는 `fake-useragent`를 통한 무작위 User-Agent 교체, 요청 간 무작위 지연(1.5~3.5초), 429/5xx 오류 시 지수 백오프, URL당 최대 4회 재시도가 포함됩니다. 이 프로젝트에는 약 5.5시간마다(두 개의 cron 일정 결합) 스크레이퍼를 실행하는 GitHub Actions 워크플로우도 포함되어 있습니다. 인증을 위해 내장된 `GITHUB_TOKEN`을 사용하며, 저장소에서 Actions에 대해 '읽기 및 쓰기 권한'이 활성화되어 있어야 합니다. 이를 통해 수동 비밀 없이 자동화된 예약 스크래핑이 가능합니다. README는 애니메이션 및 에피소드 파일 모두에 대한 상세한 JSON 스키마를 제공하며, 예제를 통해 구조를 설명합니다. 전반적으로 이 도구는 animelek.vip의 애니메이션 데이터를 아카이브하거나 분석해야 하는 모든 사람에게 유용하며, 재개 기능과 자동화 지원을 갖춘 강력한 스크래핑을 제공합니다.