Home
Login

MediaCrawler는 강력한 멀티 플랫폼 소셜 미디어 크롤러 도구입니다.

NOASSERTIONPython 23.7kNanmiCoder Last Updated: 2025-06-20

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에서 확인할 수 있으며, 모두 한국어 주석으로 설명되어 있습니다.

데이터 저장

지원되는 저장 방식

  1. MySQL 데이터베이스: 관계형 데이터베이스 저장 지원 (데이터베이스를 미리 생성해야 함)
  2. CSV 파일: data/ 디렉토리 아래의 CSV 형식 파일로 저장
  3. JSON 파일: data/ 디렉토리 아래의 JSON 형식 파일로 저장

Pro 버전 장점

프로젝트는 또한 MediaCrawlerPro 버전을 제공하며, 오픈 소스 버전에 비해 다음과 같은 장점이 있습니다.

  • 다중 계정 + IP 프록시 지원 (주요 기능)
  • Playwright 의존성 제거, 사용이 더 간단함
  • Linux 환경 사용 지원
  • 코드 리팩토링 최적화, 읽고 유지 관리하기 쉬움
  • JS 서명 로직 분리, 코드 품질 향상
  • 완벽한 아키텍처 설계, 확장 용이
  • 자가 미디어 비디오 다운로더 데스크톱 소프트웨어 추가
  • 다중 플랫폼 홈페이지 정보 스트림 추천 (HomeFeed) 지원

법적 고지

면책 조항

  • 본 프로젝트는 학습 및 연구 목적으로만 제공되며, 상업적 용도로 사용하는 것을 금지합니다.
  • 불법적인 목적이나 타인의 합법적인 권익을 침해하는 데 사용하는 것을 엄격히 금지합니다.
  • 사용자는 관련 법규를 준수해야 하며, 법적 책임은 스스로 부담합니다.
  • 개발자는 본 프로젝트 사용으로 인해 발생하는 어떠한 법적 책임도 지지 않습니다.

프로젝트 가치

MediaCrawler는 단순한 크롤러 도구일 뿐만 아니라 훌륭한 학습 프로젝트입니다.

  1. 아키텍처 설계 학습: 프로젝트 아키텍처 설계가 성숙하여 학습할 가치가 있습니다.
  2. 기술 실습: 다양한 기술 스택의 종합적인 응용을 포함합니다.
  3. 엔지니어링 사고: 코드 구성부터 배포까지의 완전한 엔지니어링 실천.
  4. 안티 크롤링 기술: 현대적인 안티 크롤링 기술에 대한 대응 방안 학습.