ホームページ  >  記事  >  Java  >  ビッグデータを扱うときに使用する必要がある 19 個の Java オープンソース Web クローラー

ビッグデータを扱うときに使用する必要がある 19 個の Java オープンソース Web クローラー

黄舟
黄舟オリジナル
2017-01-18 15:20:141778ブラウズ

Java プログラミング言語

Java は、クロスプラットフォームのアプリケーション ソフトウェアを作成できるオブジェクト指向プログラミング言語です。これは、Java プログラミング言語および Java プラットフォーム (つまり、1995 年 5 月に Sun Microsystems によって開始された JavaEE()、j2ee) です。 JavaME(j2me)、JavaSE(j2se))。


ウェブ クローラー (ウェブ スパイダー、ウェブ ロボット、FOAF コミュニティではウェブ チェイサーとしても知られています) は、特定のルールまたはスクリプトに従って World Wide Web 情報を自動的にキャプチャするプログラムです。その他のあまり一般的ではない名前には、アリ、自動インデクサ、エミュレータ、またはワームなどがあります。

今日は 19 個の Java オープンソース Web クローラーを紹介します。必要な場合は、急いで集めてください。

ビッグデータを扱うときに使用する必要がある 19 個の Java オープンソース Web クローラー

1. Heritrix

Heritrix は Java によって開発されたオープンソースの Web クローラーで、ユーザーはそれを使用してインターネットから必要なリソースをクロールできます。その最大の特徴は優れた拡張性であり、ユーザーが独自のクローリング ロジックを実装するのに便利です。

Heritrix は、サイトのコンテンツの完全、正確、詳細なコピーを取得するための「アーカイブ クローラー」です。これには、画像やその他の非テキスト コンテンツのキャプチャが含まれます。関連するコンテンツをクロールして保存します。コンテンツは拒否されず、ページのコンテンツは変更されません。同じ URL を再クロールしても、前の URL は置き換えられません。クローラーは主に Web ユーザー インターフェイスを通じて起動、監視、調整されるため、取得する URL を柔軟に定義できます。

Heritrix は、マルチスレッド方式でクロールするクローラーです。メインスレッドは Teo スレッド (処理スレッド) にタスクを割り当て、各 Teo スレッドは一度に 1 つの URL を処理します。 Teo スレッドは、URL ごとに URL プロセッサ チェーンを 1 回実行します。 URL プロセッサ チェーンには、次の 5 つの処理ステップが含まれます。

(1) プリフェッチ チェーン: 主に、遅延や再処理、後続の操作の拒否など、いくつかの準備作業を行います。

(2) 抽出チェーン: 主に Web ページをダウンロードし、DNS 変換を実行し、要求フォームと応答フォームに記入します。

(3) 抽出チェーン: 抽出が完了すると、対象の HTML と JavaScript が抽出されます。通常、クロールされる新しい URL が存在します。

(4) リンクの書き込み: クロール結果を保存すると、このステップで直接フルテキスト インデックスを作成できます。 Heritrix は、ダウンロード結果を ARC 形式で保存する ARCWriterProcessor 実装を提供します。

(5) 送信チェーン: この URL に関連する操作の最終処理を実行します。新たに抽出した URL がクローリング範囲内にあるかを確認し、それらの URL を Frontier に送信します。 DNSキャッシュ情報も更新されます。


ビッグデータを扱うときに使用する必要がある 19 個の Java オープンソース Web クローラー

Heritrixシステムフレームワークダイアグラム

ビッグデータを扱うときに使用する必要がある 19 個の Java オープンソース Web クローラー

URLを処理するheritrixプロセス

2. WebSPHINX

WebSPHINXは、JavaクラスパッケージとWebクローラーのための対話型開発環境です。 Web クローラー (ロボットまたはスパイダーとも呼ばれる) は、Web ページを自動的に参照して処理するプログラムです。 WebSPHINX は、クローラー作業プラットフォームと WebSPHINX クラス パッケージの 2 つの部分で構成されます。

WebSPHINX は、Java クラス パッケージと Web クローラーのための対話型開発環境です。 Web クローラー (ロボットまたはスパイダーとも呼ばれる) は、Web ページを自動的に参照して処理するプログラムです。 WebSPHINX は、クローラー作業プラットフォームと WebSPHINX クラス パッケージの 2 つの部分で構成されます。

WebSPHINX – 目的

1. ページのコレクションを視覚的に表示します

2. オフラインで閲覧できるようにページをローカル ディスクにダウンロードします

3. 特定のルールの抜粋に従います。ページからテキスト文字列を取得します

5. Java または Javascript を使用してカスタム クローラーを開発します

詳しい紹介はこちらをご覧ください

3. WebLech

WebLech は強力な Web サイトのダウンロードおよびミラー ツールです。機能要件に基づいて Web サイトのダウンロードをサポートし、標準の Web ブラウザの動作を可能な限り模倣します。 WebLech には機能的なコンソールがあり、マルチスレッド操作を使用します。

WebLech は、Web サイトをダウンロードしてミラーリングするための強力な無料のオープンソース ツールです。機能要件に基づいて Web サイトのダウンロードをサポートし、標準の Web ブラウザの動作を可能な限り模倣します。 WebLech には機能的なコンソールがあり、マルチスレッド操作を使用します。

このクローラーは非常にシンプルなので、初心者がクローラーを作成したい場合は、入門用のリファレンスとして使用できます。そこで、このクローラーを使って研究を始めることにしました。需要の低いアプリケーションのみを実行している場合は、それを試してみることもできます。強力なツールを見つけたい場合は、WebLech で時間を無駄にしないでください。

プロジェクトのホームページ: http://weblech.sourceforge.net/

特徴:

1) オープンソース、無料

2) コードは Pure Java で書かれており、サポートするプラットフォームで使用できます。 Java

3) Web ページのマルチスレッドダウンロードをサポートします

4) Web ページ間のリンク情報を維持できます

5) 強力な構成可能性: 深さ優先または幅優先のクローリング Web ページは、URL フィルターを使用してカスタマイズできます。必要に応じて単一の Web サーバーをクロールしたり、単一のディレクトリをクロールしたり、WWW ネットワーク全体をクロールしたりして URL の優先順位を設定できるため、関心のある Web ページや重要な Web ページのクロールを優先することができます。プログラムがブレークポイントにあるため、再起動時に前回からのクロールを続行できます。

4. Arale

Arale は主に個人使用のために設計されており、他のクローラーのようにページのインデックス作成に重点を置いていません。 Arale は、Web サイト全体または Web サイトから特定のリソースをダウンロードできます。 Arale は、動的ページを静的ページにマッピングすることもできます。

5. JSpider

JSpider: ウェブサイトのエラー (内部サーバーエラーなど) をチェックし、ウェブサイトの構造を分析するために使用できる、完全に構成およびカスタマイズ可能な Web Spider エンジンです。 Web サイトの (サイト マップを作成できます)、Web サイト全体をダウンロードし、必要な機能を拡張する JSpider プラグインを作成することもできます。

Spider は Java で実装された WebSpider です。JSpider の実行形式は次のとおりです:

jspider [URL] [ConfigName]

URL には http:// などのプロトコル名を追加する必要があります。それ以外の場合はエラーになります。報告されます。 ConfigName を省略した場合は、デフォルトの構成が使用されます。

JSpider の動作は、構成ファイルによって具体的に構成されます。たとえば、どのようなプラグインが使用されるか、結果がどのように保存されるかなどは、すべて conf[ConfigName] ディレクトリに設定されます。 JSpider のデフォルトの構成タイプは非常に少ないため、ほとんど使用されません。ただし、JSpider は拡張が非常に簡単で、これを使用して強力な Web クローリング ツールやデータ分析ツールを開発できます。これを行うには、JSpider の原理を深く理解し、必要に応じてプラグインを開発し、構成ファイルを作成する必要があります。

Spider は次のとおりです:

高度に構成可能でカスタマイズ可能な Web クローラー

LGPL オープン ソース ライセンスに基づいて開発

100% 純粋な Java 実装

次の目的で使用できます:

Web サイトのエラー (内部サーバー エラー) をチェックする, …)

外部リンクまたは内部リンクのチェック

ウェブサイトの構造を分析する (サイトマップの作成、…)

改修されたウェブサイトをダウンロード

JSpider プラグインを作成して機能を実現します。

プロジェクトのホームページ: http :// j-spider.sourceforge.net/

6.スピンドル

スピンドルは、Lucene ツールキット上に構築された Web インデックス作成/検索ツールであり、インデックスを作成するための HTTP スパイダーと、これらのインデックスを検索するための HTTP スパイダーが含まれています。クラス。スピンドル プロジェクトは、Java クラスを開発せずに JSP ベースのサイトに検索機能を追加できるようにする JSP タグ ライブラリのセットを提供します。

7. Arachnid

Arachnid は Java ベースの Web スパイダー フレームワークであり、Arachnid のサブクラスを実装することで、HTML コンテンツを含む入力ストリームを分析できるシンプルな Web スパイダーを開発できます。 Web サイトの各ページが解析された後に呼び出すコードを数行追加します。 Arachnid ダウンロード パッケージには、フレームワークの使用方法を示す 2 つのスパイダー アプリケーションの例が含まれています。

プロジェクトのホームページ: http://arachnid.sourceforge.net/

8. LARM

LARM は、Jakarta Lucene 検索エンジン フレームワークのユーザーに純粋な Java 検索ソリューションを提供できます。これには、ファイル、データベース テーブル、および Web サイトのインデックスを作成するためのクローラのインデックスを作成するためのメソッドが含まれています。

プロジェクトのホームページ: http://larm.sourceforge.net/

9. JoBo

JoBo は、Web サイト全体をダウンロードするためのシンプルなツールです。それは本質的にウェブスパイダーです。他のダウンロード ツールと比較した場合、その主な利点は、フォームに自動的に入力する機能 (自動ログインなど) と、Cookie を使用してセッションを処理できることです。 JoBo には、柔軟なダウンロード ルールもあります (Web ページの URL、サイズ、MIME タイプなどによるダウンロードの制限など)。

10. snoics-reptile

1. snoics-reptile とは何ですか?

は、Web サイトの画像をすべてキャプチャするために使用されるツールです。この Web サイトでは、ブラウザを使用して GET を通じて取得したすべてのリソース (Web ページや、画像、Flash、mp3、zip、rar、exe、その他のファイルなど) をローカルにキャプチャできます。 Web サイト全体をハードドライブに完全にダウンロードでき、元の Web サイト構造を正確かつ変更せずに維持できます。完全な Web サイトのミラーリングを実現するには、キャプチャした Web サイトを Web サーバー (Apache など) に配置するだけです。

2. 他にも同様のソフトウェアがあるのに、なぜ snoics-reptile を開発する必要があるのでしょうか?

クロール処理中にファイルが間違っていることが多く、JavaScript によって制御される URL を修正する方法がないためです。 snoics-reptile は、特別な URL に対して外部インターフェイスと構成ファイルを提供し、外部から提供されたインターフェイスを自由に拡張し、構成ファイルを挿入して、基本的にすべての Web ページの解析とキャプチャを実現します。

プロジェクトのホームページ: http://www.blogjava.net/snoics

11. Web-Harvest

Web-Harvest は、Java オープンソースの Web データ抽出ツールです。指定された Web ページを収集し、これらのページから有用なデータを抽出できます。 Web-Harvest は主に XSLT、XQuery、正規表現などのテクノロジーを使用して text/xml 操作を実装します。

Web-Harvest は、Java で書かれたオープンソースの Web データ抽出ツールです。目的のページから有用なデータを抽出する方法を提供します。この目標を達成するには、XSLT、XQuery、正規表現などの関連テクノロジを使用して text/xml を操作する必要がある場合があります。 Web-Harvest は主に HMLT/XML ベースのページ コンテンツに焦点を当てており、これが依然として大部分を占めています。一方、独自の Java メソッドを作成することで、抽出機能を簡単に拡張できます。

Web-Harvest の主な目的は、既存のデータ抽出テクノロジーのアプリケーションを強化することです。その目標は、新しいメソッドを作成することではなく、既存のメソッドを使用および組み合わせるより良い方法を提供することです。データを処理し、フローを制御するためのプロセッサーのセットを提供します。各プロセッサーはパラメーターを持ち、実行後に結果を返します。さらに、Web-Harvest では、データの操作や再利用を容易にするために、宣言された変数を格納するための変数の上位層と下位層も提供しています。

Web ハーベストを開始するには、jar パッケージを直接ダブルクリックして実行できますが、この方法では Web ハーベスト Java 仮想マシンのサイズを指定できません。 2 番目の方法は、cmd の下の web-harvest ディレクトリに移動し、コマンド「java -jar -Xms400m webharvest_all_2.jar」を入力して起動し、Java 仮想マシンのサイズを 400M に設定します。

プロジェクトのホームページ: http://web-harvest.sourceforge.net

Twelve, ItSucks

ItSucks は、Java Web クローラーのオープン ソース プロジェクトです。柔軟にカスタマイズでき、ダウンロード テンプレートと正規表現によるダウンロード ルールの定義をサポートします。コンソールとSwing GUI操作インターフェイスを提供します。

機能:

マルチスレッド

正規表現

ダウンロードジョブの保存/読み込み

オンラインヘルプ

HTTP/HTTPSサポート

HTTPプロキシサポート

HTTP認証

Cookieサポート

利用可能 設定されたユーザーエージェント

接続制限

HTTP 応答コードの動作を設定する

帯域幅制限

Gzip 圧縮

プロジェクトのホームページ: http://itsucks.sourceforge.net/

13. スマートでシンプルな Web クローラー

スマートでシンプルな Web クローラーは、Web クローラー フレームワークです。統合された Lucene サポート。クローラーは単一のリンクまたはリンクの配列から開始でき、最大反復と最大深さの 2 つのトラバーサル モードを提供します。クロールされるリンクを制限するフィルターを設定できます。ServerFilter、BeginningPathFilter、および RegularExpressionFilter の 3 つのフィルターがデフォルトで提供されており、これらの 3 つのフィルターは AND、OR、および NOT と組み合わせることができます。リスナーは、解析プロセスまたはページの読み込みの前後に追加できます。

14. Crawler4j

crawler4j は、Java で実装されたオープンソースの Web クローラーです。マルチスレッド Web クローラーを数分で作成できる、シンプルで使いやすいインターフェイスを提供します。

crawler4j の使用は、主に 2 つのステップに分かれています:

WebCrawler から継承したクローラー クラスを実装する;

CrawlController を呼び出して実装する Crawler クラス。

WebCrawler は抽象クラスであり、これを継承するには、 shouldVisit と visit の 2 つのメソッドを実装する必要があります。

shouldVisit は、現在の URL をクロールする (訪問する) かどうかを決定します。

visit は、URL が指すページのデータをクロールします。渡されるパラメーターは Web ページのすべてのデータです。カプセル化されたオブジェクトのページ。

さらに、WebCrawler にはオーバーライドできる他のメソッドがあり、そのメソッドの命名規則は Android の命名規則と似ています。たとえば、getMyLocalData メソッドは WebCrawler 内のデータを返すことができ、onBeforeExit メソッドは WebCrawler が終了する前に呼び出され、リソース解放などの作業を実行できます。

ライセンス

著作権 (c) 2010-2015 Yasser Ganjisaffar

Apache License 2.0に基づいてリリース

オープンソースアドレス: https://github.com/yasserg/crawler4j

Fifteen、Ex-Crawler

Ex-クローラー Java で開発された Web クローラーです。プロジェクトは 2 つの部分に分かれており、1 つはデーモン プロセスで、もう 1 つは柔軟で構成可能な Web クローラーです。データベースを使用して Web ページ情報を保存します。

Ex-Crawler は 3 つの部分 (クローラー デーモン、Gui クライアント、Web 検索エンジン) に分かれており、これら 3 つの部分を組み合わせることで、柔軟で強力なクローラーおよび検索エンジンになります。 Web 検索エンジン部分は PHP を使用して開発されており、検索エンジンを保守するためのコンテンツ管理システム CMS が含まれています。

プロジェクトのホームページ: http://ex-crawler.sourceforge.net/joomla/

16. クローラー

クローラーはシンプルな Web クローラーです。これにより、退屈でエラーが発生しやすいコードの作成を回避し、クロールする必要がある Web サイトの構造だけに集中できます。さらに、使い方もとても簡単です。

プロジェクトのホームページ: http://projetos.vidageek.net/crawler/crawler/

Seventeen、Encog

Encog は、高度なニューラル ネットワークおよびロボット/クローラー開発ライブラリです。 Encog が提供する 2 つの機能は、ニューラル ネットワークまたは HTTP ロボットを作成するために個別に使用できます。また、Encog は、これら 2 つの高度な機能を組み合わせて使用​​することもサポートしています。 Encog は、フィードフォワード ニューラル ネットワーク、ホップフィールド ニューラル ネットワーク、自己組織化グラフの作成をサポートしています。

Encog は、高度な HTTP ロボット/クローラー プログラミング機能を提供します。マルチスレッド クローラーによって生成されたコンテンツのメモリまたはデータベースへの保存をサポートします。 HTM 解析と高度なフォームと Cookie の処理を​​サポートします。

Encog は、さまざまな高度なアルゴリズムをサポートするとともに、クラスの正規化とデータの処理をサポートする高度な機械学習フレームワークです。サポート ベクター マシン、人工ニューラル ネットワーク、遺伝的プログラミング、ベイジアン ネットワーク、隠れマルコフ モデル、遺伝的プログラミング、遺伝的アルゴリズムなどの機械学習アルゴリズムがサポートされています。ほとんどの Encog トレーニング アルゴリズムはマルチスレッドであり、マルチコア ハードウェアに適切に拡張できます。 Encog は GPU を使用して処理時間をさらに高速化することもできます。機械学習アルゴリズムのモデル化とトレーニングに役立つ GUI ベースのワークベンチも提供されています。 Encog は 2008 年から積極的に開発されています。

Encog は C# Java や C を含む複数の言語をサポートしています

ソース コードは GitHub でさまざまな言語で入手できます

http://www.heatonresearch.com/encog

https: //github.com/encog

18. Crawljax

Crawljax は、Ajax Web アプリケーションの自動クロールとテストのためのオープンソース Java ツールです。 Crawljax は、イベントをトリガーし、フォームにデータを入力することで、Ajax ベースの Web アプリケーションをクロール/クロールできます。

収録時間: 2011-05-18 09:50:32

プロジェクトのホームページ: http://crawljax.com/

オープンソースのアドレス: https://github.com/crawljax/crawljax


上記は、ビッグ データを扱うときに使用する必要がある 19 個の Java オープンソース Web クローラーの内容です。その他の関連コンテンツについては、PHP 中国語 Web サイト (www.php.cn) に注目してください。


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。