
ACHE はフォーカス型 Web クローラーです。特定の基準(例:特定のドメインに属するページ、ユーザー指定のパターンを含むページ)を満たす Web ページを収集します。 ACHE は、特定のドメイン内で関連ページと非関連ページを区別するために ページ分類器 を使用する点で、汎用クローラーとは異なります。ページ分類器は、単純な正規表現(例えば特定の単語を含むすべてのページに一致するもの)から、機械学習ベースの分類モデルまで様々です。 ACHE はまた、関連コンテンツを効率的に見つけながら、無関係なコンテンツの取得を回避するために、リンクの優先順位を自動的に学習することもできます。
ACHE は以下のような多くの機能をサポートしています:
バージョン 0.11.0 以降、ACHE は Apache 2.0 ライセンスの下で提供されています。 以前のバージョンは GNU GPL ライセンスの下で提供されていました。
詳細については、プロジェクトの ドキュメント を参照してください。
ソースコードから ACHE をビルドする、conda を使用して実行可能バイナリをダウンロードする、または Docker を使用してイメージをビルドしコンテナ内で ACHE を実行する、のいずれかの方法でインストールできます。
前提条件: 最新バージョンの Java(JDK 8 以降)をインストールする必要があります。
ソースから ACHE をビルドするには、ターミナルで以下のコマンドを実行します:
git clone https://github.com/ViDA-NYU/ache.git
cd ache
./gradlew installDist
これにより、ache/build/install/ の下にインストールパッケージが生成されます。
その後、ACHE バイナリを PATH 環境変数に追加することで、ターミナルで ache コマンドを使用できるようになります。
export ACHE_HOME="{path-to-cloned-ache-repository}/ache/build/install/ache"
export PATH="$ACHE_HOME/bin:$PATH"
前提条件: 最新バージョンの Docker をインストールする必要があります。インストール方法の詳細は https://docs.docker.com/engine/installation/ を参照してください。
リリースされた各バージョンのビルド済み Docker イメージを Docker Hub で公開しています。 最新イメージは以下のコマンドで実行できます。
docker run -p 8080:8080 vidanyu/ache:latest
または、自分でイメージをビルドして実行することもできます。
git clone https://github.com/ViDA-NYU/ache.git
cd ache
docker build -t ache .
docker run -p 8080:8080 ache
Dockerfile は 2 つのデータボリュームを公開しており、設定ファイルのディレクトリ(/config)をマウントし、コンテナ停止後もクローラーの保存データ(/data)を保持できます。
前提条件: システムに Conda パッケージマネージャーがインストールされている必要があります。
Conda を使用している場合、以下のコマンドで Anaconda Cloud から ache をインストールできます。
conda install -c vida-nyu ache
注: Anaconda Cloud に公開されるのはリリースタグが付けられたバージョンのみであるため、Conda で利用可能なバージョンは最新でない可能性があります。 最新バージョンを試したい場合は、リポジトリをクローンしてソースからビルドするか、Docker バージョンを使用してください。
クロールを開始する前に、ache.yml という名前の設定ファイルを作成する必要があります。
リポジトリの config ディレクトリには、開始に役立ついくつかの設定サンプルが用意されています。
また、pageclassifier.yml という名前のページ分類器設定ファイルも必要です。
ページ分類器の設定方法の詳細については、ページ分類器のドキュメント を参照してください。
分類器を設定した後、最後に必要なのはシードファイル、つまり 1 行に 1 つの URL が含まれるプレーンテキストファイルです。クローラーはこれらの URL を使用してクロールを開始します。
最後に、以下のコマンドを使用してクローラーを起動できます。
ache startCrawl -o <data-output-path> -c <config-path> -s <seed-file> -m <model-path>
ここで、
<configuration-path> は ache.yml を含む設定ディレクトリへのパスです。<seed-file> はシード URL を含むシードファイルです。<model-path> は pageclassifier.yml ファイルを含むモデルディレクトリへのパスです。<data-output-path> はデータ出力ディレクトリへのパスです。リポジトリにあるサンプルの 事前学習済みページ分類器モデル とサンプル シードファイル を使用した ACHE の実行例:
ache startCrawl -o output -c config/sample_config -s config/sample.seeds -m config/sample_model
クローラーが実行され、ログがコンソールに出力されます。任意の時点で Ctrl+C を押して停止します(少し時間がかかる場合があります)。
長時間のクロールの場合は、nohup などのツールを使用して ACHE をバックグラウンドで実行する必要があります。
ACHE は複数の形式でデータを出力できます。現在利用可能なデータ形式は以下の通りです。
データ形式の設定方法の詳細については、データ形式のドキュメント ページを参照してください。
ユーザーからのフィードバックを歓迎します。提案、質問、バグ報告は Github のイシュートラッカー を使用して送信してください。
また、Gitter にチャットルームがあります。
コードの貢献を歓迎します。コードスタイルは Google スタイルガイド に基づいていますが、タブには 4 スペースを使用します。Eclipse フォーマッター設定ファイルが リポジトリ にあります。