|
I. はじめに Larbin は C++ で開発されたオープンソースの Web クローラーであり、カスタマイズ オプションと高速な Web ページ クロールを提供します。 Larbin クローラーの構造図と主要モジュールの対応を下図に示します。 Larbin の動作は次のように説明できます。シード URL ファイルは最初に *URLsDisk として初期化され、namedSiteList に読み込まれ、adns ライブラリ呼び出しを介して Fifo<NamedSite> *dnsSites と Fifo<IPSite> *okSites に徐々にロードされます。Fetch モジュールは、Fifo<IPSite> *okSites からクロールする URL を直接取得し、クロールされたページのハッシュ テーブルを構築して、重複したクロールを防止します。次に、ダウンロードされたページから HTML のような方法を使用して新しい URL を抽出します。フロントエンド キューに追加された新しい URL はロボット フィルターに準拠する必要があり、重複する URL はハッシュ テーブルを使用して削除されます。クロールが完了すると、関連する読み取りおよび書き込み操作が実行され、次に poll 関数が適切なソケット インターフェイスを選択して新しいクロールを開始します。このクロール プロセスは、ユーザーが終了するかプロセスが中断されるまで無期限に続行できます。 Larbin プロジェクトの詳細 (ソース コードを含む) については、こちらをご覧ください。 II. インストール この例では、CentOS 6.2 のソース コードから larbin-2.6.3.tar.gz をインストールする方法を示します。 指定のディレクトリに解凍した後、`./configure` を直接実行すると、通常、依存関係エラー(`make depend`)が発生します。この問題を解決するには、以下の手順で依存関係をインストールしてください。
`./configure` が成功した場合、`make` を直接実行すると、主に次のようなエラーが発生します。
adns ディレクトリに移動し、internal.h を見つけて、関数をコメント アウトするだけです。 `make` を再度実行してもエラーは解消されませんでした。今回は、コードが古いC言語で記述されていたことが主な原因でした。具体的には、以下のようになります。
次のコマンドを使用して、 iostream.h をiostreamに置き換えます。
上記の「grep」記号は一重引用符ではなく、Esc キーの下のバックスラッシュ (`) であることに注意してください。 再度 `make` を実行すると、以下に示すように、上記と同じ理由で多数のエラーが発生しました。
cerr と endl を std::cerr と std::endl に置き換えるには、次のコマンドを実行します。
もう一度makeすれば問題は発生しません。コンパイル後、larbin実行ファイルが現在のディレクトリに生成されます。
上記の画面出力は、Larbin が正常に起動したことを示しています。 III. 構成 上記の方法でlarbinを起動すると、デフォルトの設定ファイルlarbin.confが使用されます。もちろん、以下のように設定ファイルを指定することもできます。
Larbinの設定は、options.hとlarbin.confの組み合わせで行います。前者を変更するには再コンパイルが必要ですが、後者を変更するには再起動のみが必要です。 理想的には、options.h で次のパラメータを有効にする必要があります。
設定が完了したら、`make` を実行することを忘れないでください。 理想的には、larbin.conf で次のパラメータを有効にする必要があります。
詳細な設定情報については、このリンクを参照してください。 設定が完了したら、サービスを開始してデータのキャプチャを開始できます。 開始URLを設定するだけでなく、「telnet localhost 1976」経由でも設定できます。ターミナルプロンプトに以下を入力してください。
ここでは、入力したURLが他のURLよりも先にクロールされるように、優先度を1に設定しています。URLを多数入力した場合は、URLのメモリ不足を防ぐため、優先度を0に設定しています。 深さパラメータは、リンクがクロールされる深さを指定します。通常は 5 を超えてはなりません。 test を 0 に設定すると、ウェブページが既にクロールされていて再度クロールする必要がある場合、そのページはクロールされます。test を 1 に設定すると、重複したクロールを防ぐことができます。 この設定の効果は、 larbin.conf のstartUrlと同じです。 IV. 使用法 実行: ./larbin (または、larbin をバックグラウンドで実行するには「nohup ./larbin &」) 停止: Ctrl+C 再起動: ./larbin -scratch larbin を停止するために Ctrl+z を使用しないでください。そうしないと、./larbin または ./larbin -scratch を使用して再起動しようとすると、ポートが占有され、再起動できなくなります。 あるいは、http://localhost:8081 経由で larbin にアクセスし、ページから larbin の動作に関する情報を取得することもできます。 オリジナルリンク: http://blog.chinaunix.net/uid-22312037-id-4390559.html |