NanmiCoder/MediaCrawlerView GitHub Homepage for Latest Official Releases
MediaCrawler는 강력한 멀티 플랫폼 소셜 미디어 크롤러 도구입니다.
NOASSERTIONPythonMediaCrawlerNanmiCoder 35.3k Last Updated: August 06, 2025
MediaCrawler - 다중 플랫폼 자가 미디어 크롤러 도구
프로젝트 개요
MediaCrawler는 NanmiCoder가 개발 및 유지 관리하는 강력한 다중 플랫폼 자가 미디어 크롤러 도구입니다. 이 프로젝트는 Playwright 기술을 기반으로 하며, 콘텐츠, 댓글 등 데이터를 포함하여 여러 주요 소셜 미디어 플랫폼의 공개 정보를 수집할 수 있습니다.
기술 아키텍처
핵심 기술
- Playwright: 브라우저 자동화 프레임워크로서, 로그인 상태를 유지하는 브라우저 환경
- Python: 주요 개발 언어, 버전 요구 사항 3.9.6+
- JavaScript 실행: JS 표현식 실행을 통해 암호화된 매개변수 획득
- Node.js: 버전 요구 사항 16+
작동 원리
프로젝트는 Playwright를 사용하여 로그인 성공 후의 컨텍스트 브라우저 환경을 유지하고, JavaScript 표현식을 실행하여 일부 암호화된 매개변수를 획득합니다. 이 방식은 핵심 암호화 JS 코드를 재현하는 복잡한 작업을 피하고, 역공학의 난이도를 크게 낮춥니다.
환경 요구 사항
시스템 요구 사항
- Python 3.9.6+
- Node.js 16+
의존성 관리
프로젝트는 uv
를 추가하여 프로젝트 의존성을 관리합니다. uv를 사용하여 기존의 pip를 대체하여 의존성을 설치하는 것이 더 편리하고 빠릅니다.
설치 및 배포
기본 설치 단계
# 프로젝트 루트 디렉토리로 이동
cd MediaCrawler
# 가상 환경 생성
python -m venv venv
# 가상 환경 활성화
# macOS & Linux
source venv/bin/activate
# Windows
venv\Scripts\activate
# 의존성 설치
pip install -r requirements.txt
# playwright 브라우저 설치
playwright install
데이터베이스 초기화 (선택 사항)
# 데이터베이스 초기화 실행 (최초 실행 시에만)
python db.py
사용 방법
기본 명령어
# 키워드 검색 크롤링
python main.py --platform xhs --lt qrcode --type search
# 지정된 게시물 ID 크롤링
python main.py --platform xhs --lt qrcode --type detail
# 도움말 정보 보기
python main.py --help
설정 설명
- 프로젝트는 기본적으로 댓글 크롤링 모드를 활성화하지 않습니다.
- 댓글을 크롤링하려면
config/base_config.py
에서ENABLE_GET_COMMENTS
변수를 수정하십시오. - 다른 기능 설정은
config/base_config.py
에서 확인할 수 있으며, 모두 한국어 주석으로 설명되어 있습니다.
데이터 저장
지원되는 저장 방식
- MySQL 데이터베이스: 관계형 데이터베이스 저장 지원 (데이터베이스를 미리 생성해야 함)
- CSV 파일:
data/
디렉토리 아래의 CSV 형식 파일로 저장 - JSON 파일:
data/
디렉토리 아래의 JSON 형식 파일로 저장
Pro 버전 장점
프로젝트는 또한 MediaCrawlerPro 버전을 제공하며, 오픈 소스 버전에 비해 다음과 같은 장점이 있습니다.
- 다중 계정 + IP 프록시 지원 (주요 기능)
- Playwright 의존성 제거, 사용이 더 간단함
- Linux 환경 사용 지원
- 코드 리팩토링 최적화, 읽고 유지 관리하기 쉬움
- JS 서명 로직 분리, 코드 품질 향상
- 완벽한 아키텍처 설계, 확장 용이
- 자가 미디어 비디오 다운로더 데스크톱 소프트웨어 추가
- 다중 플랫폼 홈페이지 정보 스트림 추천 (HomeFeed) 지원
법적 고지
면책 조항
- 본 프로젝트는 학습 및 연구 목적으로만 제공되며, 상업적 용도로 사용하는 것을 금지합니다.
- 불법적인 목적이나 타인의 합법적인 권익을 침해하는 데 사용하는 것을 엄격히 금지합니다.
- 사용자는 관련 법규를 준수해야 하며, 법적 책임은 스스로 부담합니다.
- 개발자는 본 프로젝트 사용으로 인해 발생하는 어떠한 법적 책임도 지지 않습니다.
프로젝트 가치
MediaCrawler는 단순한 크롤러 도구일 뿐만 아니라 훌륭한 학습 프로젝트입니다.
- 아키텍처 설계 학습: 프로젝트 아키텍처 설계가 성숙하여 학습할 가치가 있습니다.
- 기술 실습: 다양한 기술 스택의 종합적인 응용을 포함합니다.
- 엔지니어링 사고: 코드 구성부터 배포까지의 완전한 엔지니어링 실천.
- 안티 크롤링 기술: 현대적인 안티 크롤링 기술에 대한 대응 방안 학습.