LoginSignup
34
35

More than 5 years have passed since last update.

Javaでクローラーを作る(crawler4j)

Last updated at Posted at 2015-07-20

はじめに

Javaでクローラーを作るため色々調べていたのですが、crawler4jというオープンソースライブラリが使いやすそうでしたので自分なりにまとめていきたいと思います。

導入について

crawler4jは非常に多くのライブラリに依存しているようですので、Mavenなどの依存関係を解決してくれるビルドツールを利用するのがよさそうです。Mavenの場合は以下の記述をpomに足してビルドするだけ。

pom.xml
    <dependency>
        <groupId>edu.uci.ics</groupId>
        <artifactId>crawler4j</artifactId>
        <version>4.1</version>
    </dependency>

動かし方について

基本的な動かし方は、以下のGithubページのREADMEに書いてありますので割愛いたします。
https://github.com/yasserg/crawler4j

こちらに書いてあるサンプルコードで私でも簡単に動かすことができました。

設定

クローロング先のサイト様に甚大な被害を与えぬよう、最低限の設定値を一覧化します。

設定 説明
crawlStorageFolder クロール中のワークデータを格納するディレクトリを指定します。
resumableCrawling 中断したクロールを再開するかどうかを示すフラグ値。
TRUEにした場合、最初から区ローリングを始めたい場合は、ワークディレクトリを手動で削除する必要があるようです。
デフォルトFALSE
maxDepthOfCrawling 最大のクロールの深さを指定します。
たとえば、A - > B - > C - > Dというページ階層があり、Aがシードページ(起点)だったとして、設定値を2にした場合は、Dはクローリング対象となりません。
デフォルトは-1に設定されており、無制限を表します。
maxPagesToFetch クロールするページの最大数を指定します。
デフォルトは-1に設定されており、無制限を表します。
userAgentString ユーザーエージェントを指定します。デフォルトは以下の値になります。
crawler4j (https://github.com/yasserg/crawler4j/)
politenessDelay リクエストの間隔を指定します。
1.3以降のバージョンでは、デフォルトで200ミリ秒の待機時間を設けているようです。
includeHttpsPages
includeBinaryContentInCrawling 画像やPDFなどのバイナリデータをクロールするかを指定します
maxConnectionsPerHost 1ホストあたりの最大接続数を指定します。
ソースを読む限りデフォルト100に設定されています。
maxTotalConnections トータルの最大接続数を指定します。
ソースを読む限りデフォルト100に設定されています。
socketTimeout ソケットのタイムアウト値を指定します。
ソースを読む限りデフォルト20秒に設定されています。
connectionTimeout ソースを読む限りデフォルト20秒に設定されています。
maxOutgoingLinksToFollow あまりよく分かってませんが、1ページあたりのリンク実行の最大数を示しているように思います。
ソースを読む限りデフォルト5000に設定されています。
maxDownloadSize ソースを読む限りデフォルト1048576に設定されています。
followRedirects ページ内のリダイレクト記述に従うべきかどうか。
デフォルトTRUEに設定されています。
proxyHost プロキシホストを指定します。
proxyPort プロキシポートを指定します。
proxyUsername プロキシユーザー名を指定します。
proxyPassword プロキシパスワードを指定します。
34
35
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
34
35