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
が追加されました。従来のpipの代わりにuvを使用して依存関係をインストールすることで、より簡単かつ迅速になります。
インストールとデプロイ
基本的なインストール手順
# プロジェクトのルートディレクトリに移動
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は単なるクローラーツールではなく、優れた学習プロジェクトでもあります。
- アーキテクチャ設計の学習: プロジェクトのアーキテクチャ設計は成熟しており、学習する価値があります
- 技術実践: さまざまな技術スタックの総合的な応用を網羅
- エンジニアリング思考: コード編成からデプロイまでの完全なエンジニアリング実践
- アンチクローリング技術: 現代のアンチクローリング技術への対応策を学習