メインコンテンツへスキップ

設定

A-Parser は以下の設定グループで構成されています:

  • Global Settings - 言語、パスワード、更新パラメータ、アクティブなタスク数などのプログラムの基本設定
  • Config Presets - タスクのスレッド設定および結果重複排除方法の設定
  • Parser Presets - 各スクレイパーごとの個別設定
  • プロキシチェッカー設定 - プロキシチェッカーのスレッド数およびすべての設定
  • Advanced Settings - 上級ユーザー向けのオプション設定
  • Task presets - 後で再利用するためのタスクの保存

すべての設定(一般設定と追加設定を除く)は、いわゆる プリセット(事前保存された設定セット)に保存されます。例:

  • スクレイパー SE::GoogleSE::Google 用の異なる設定プリセット - 一方は最大深度10ページでリンクをスクレイピングするためのもの、もう一方はクエリごとの競合を評価するためのもので、スクレイピング深度は1ページです
  • プロキシチェッカー設定の異なるプリセット - HTTPプロキシ用とSOCKSプロキシ用など

すべての設定にはデフォルトのプリセット(default)が存在します。これは変更できないため、すべての変更は新しい名前のプリセットとして保存する必要があります。

一般設定

設定 -> 一般設定
パラメータ名デフォルト値説明
PasswordパスワードなしA-Parserへのログインパスワードを設定
LanguageEnglishインターフェース言語
News & TipsEnglishニュースとヒントの言語
Enable tipsヒントを表示するかどうかを決定
Check updatesステータスバーに新しい更新の利用可能性に関する情報を表示するかどうかを決定
Save window sizeウィンドウサイズを保存するかどうかを決定
Updates channelStable更新チャネルの選択(安定版、ベータ、アルファ)
Tasks per page5タスクキューの1ページあたりのタスク数
Max active tasks1アクティブなタスクの最大数
Total threads limit10000A-Parserの合計スレッド制限。合計スレッド制限がタスクのスレッド数より少ない場合、タスクは開始されません
Dynamic thread limit動的スレッド制限を使用するかどうかを決定
CPU cores (task processing)2異なるCPUコアでのタスク処理のサポート(Enterpriseライセンスのみ)。詳細は後述
CPU cores (result processing)4フィルタリング、結果ビルダー、Parse custom resultでのみ複数のコアが使用されます(すべてのライセンスタイプ
Memory SaverBest speedスクレイパーが使用できるメモリ量を決定します(Best speed / Medium memory usage / Save max memory)。詳細...

CPUコア(タスク処理)

プロセッサの異なるコアでのタスク処理のサポート。この機能は Enterpriseライセンスのみ で利用可能です。

このオプションは、キュー内の複数のタスクの処理を(数倍)高速化します(Settings -> Max active tasks)。ただし、単一のタスクの実行速度は向上しません。

また、各プロセスのCPU負荷に基づいて、タスクを作業コアにインテリジェントに分散する機能も実装されています。 使用するCPUコア数は設定で指定でき、デフォルトは2、最大は32です。

スレッドの場合と同様に、コア数の選択は実験的に行うのが最善です。4コアプロセッサの場合は2〜3コア、8コアの場合は4〜6コアなどが妥当な値です。コア数が多い場合や負荷が高い場合、メインの管理プロセス(aparser/aparser.exe)の負荷が100%に達することがあり、その状態でタスク処理用のプロセスをさらに増やすと、全体の速度低下や不安定な動作を招く可能性があることに注意してください。また、各タスク処理プロセスは最大300%の追加負荷(つまり、同時に3つのコアを100%ずつ使用)を生成する可能性があることも考慮すべきです。この特性は、JavaScript v8エンジンのマルチスレッドガベージコレクションに関連しています。

スレッド設定

A-Parser の動作は、マルチスレッドデータ処理. の原則に基づいています。スクレイパーは個別のスレッドでタスクを並行して実行し、その数はサーバーの構成に応じて柔軟に変更できます。

スレッド動作の説明

実務におけるスレッドとは何かを理解しましょう。例えば、3ヶ月分のレポートを作成する必要があるとします。

パターン 1
最初に1ヶ月目、次に2ヶ月目、その後に3ヶ月目のレポートを作成できます。これはシングルスレッド動作の例です。タスクは順番に解決されます。

パターン 2
3人の会計士を雇い、それぞれが1ヶ月分ずつレポートを作成します。そして、3人から結果を受け取った後に総合レポートを作成します。これはマルチスレッド動作の例です。タスクは同時に解決されます。

これらの例からわかるように、マルチスレッド動作ではタスクをより速く完了できますが、同時に、より多くのリソースが必要になります(1人の代わりに3人の会計士が必要です)。 A-Parser のマルチスレッドも同様に機能します。例えば、複数のリンクから情報をスクレイピングする必要があるとします:

  • シングルスレッドの場合、アプリケーションは各サイトを順番にスクレイピングします
  • マルチスレッドで動作する場合、各スレッドが独自のリンクを処理し、完了するとリスト内の次の未処理リンクに取り掛かります

このように、2番目のパターンではタスク全体が大幅に速く完了しますが、より多くのサーバーリソースが必要になるため、システム要件を遵守することをお勧めします。

スレッドの設定

A-Parser のスレッド設定は、実行に必要なパラメータに応じて、タスクごとに個別に行われます。デフォルトでは、default100 Threads に対して、それぞれ 20 スレッドと 100 スレッドの2つのスレッド設定(コンフィグ)が用意されています。

選択したコンフィグの設定に移動するには、鉛筆アイコン スレッドコンフィグ編集ボタン をクリックすると、その設定が開きます。タスクエディタのスレッド設定編集ボタン

また、メニュー項目の Settings -> Config Presets からもスレッド設定に移動できます。

ここでは以下のことが可能です:

  • 独自の設定で新しいコンフィグを作成し、独自の名前で保存する(「新規追加」ボタン)
  • ドロップダウンリストから選択して、既存のコンフィグに変更を加える(「保存」ボタン)
スレッド構成の設定

スレッド数 (Threads count)

このパラメータは、このコンフィグで実行されるタスクが動作するスレッド数を指定します。スレッド数は任意に設定できますが、サーバーの能力や、プロキシプランに制限がある場合はその制限を考慮する必要があります。例えば、弊社のプロキシの場合は、選択したプラン以下の数値を指定できます。

注記

また、スクレイパー内の総スレッド数は、実行中のタスクとプロキシチェックが有効なプロキシチェッカーのスレッド数の合計であることに注意してください。例えば、20スレッドのタスクが1つ、100スレッドのタスクが2つ実行されており、さらに15スレッドでプロキシチェックを行うプロキシチェッカーが1つ動作している場合、スクレイパーは合計で 20+100+100+15=235 スレッドを使用します。このとき、プロキシプランが200スレッド用であれば、多くのリクエストが失敗します。これを避けるには、使用するスレッド数を減らす必要があります。例えば、プロキシチェックをオフにする(不要な場合は15スレッド節約できます)か、いずれかのタスクのスレッド数をさらに20スレッド減らします。具体的には、実行中のタスクの1つに対して80スレッドのコンフィグを作成し、残りはそのままにします。

プロキシチェッカー (Proxy Checkers)

このパラメータでは、特定の構成を持つプロキシチェッカーを選択できます。ここでは、動作中のすべてのプロキシチェッカーを使用することを意味する All パラメータを選択するか、タスクで使用する必要があるものだけを選択できます(複数選択可能)。

注記

この設定により、必要なプロキシチェッカーのみを使用してタスクを実行できます。プロキシチェッカーの設定プロセスについてはこちらで説明しています。

プロキシあたりの最大スレッド数 (Max threads per proxy)

ここでは、同じプロキシを同時に使用する最大スレッド数を指定します。例えば、1スレッド = 1プロキシといった異なるパラメータを設定できます。

注記

デフォルトでは、このパラメータは 0 で、この機能は無効になっています。ほとんどの場合、これで十分です。しかし、各プロキシへの負荷を制限する必要がある場合は、値を変更する意味があります。

グローバルプロキシバン (Global proxy ban)

このオプションを有効にして実行されたすべてのタスクは、共通のプロキシバンデータベースを共有します。このパラメータの特徴は、各スクレイパーのバンされたプロキシリストが、実行中のすべてのタスクで共通になることです。

例えば、タスク1の SE::GoogleSE::Google でバンされたプロキシは、タスク2の SE::GoogleSE::Google でもバンされますが、両方のタスクの SE::YandexSE::Yandex では自由に使用できます。

ホストあたりの最大接続数 (Max connections per host)

このパラメータは、ホストへの最大接続数を指定し、サイトから情報をスクレイピングする際のサイトへの負荷を軽減するために設計されています。実質的に、このパラメータを指定することで、特定のドメインごとに一度に行われるリクエスト数を制御できます。このパラメータを有効にするとタスク全体に適用され、同じスレッドコンフィグで複数のタスクを同時に実行する場合、制限はすべてのタスクの合計で計算されます。

デフォルトでは、このパラメータの値は 0、つまり無効です。

リトライ間のプロキシ再利用 (Reuse proxy between retries)

この設定は、各試行におけるプロキシの一意性チェックを無効にし、プロキシバンも機能しなくなります。これは、すべての試行で1つのプロキシを使用できることを意味します。

このパラメータは、例えば1つのプロキシを使用し、接続するたびに出口IPが変わるような場合に有効にすることをお勧めします。

プロキシ戦略 (Proxy strategy)

セッション使用時のプロキシ選択戦略を管理できます。成功したリクエストのプロキシを次のリクエストのために保持するか、常にランダムなプロキシを使用するかを選択します。

推奨事項

この記事では、スレッドを管理するためのすべての設定について説明しました。スレッドコンフィグの設定では、記事に記載されているすべてのパラメータを指定する必要はなく、正しい結果が得られるパラメータのみを指定すれば十分です。通常は Threads count だけを変更し、他の設定はデフォルトのままにしておくことができます。

スクレイパーの設定

各スクレイパーには多くの設定があり、異なる設定セットをプリセットとして保存できます。プリセットシステムにより、状況に応じて同じスクレイパーを異なる設定で使用できます。SE::GoogleSE::Google スクレイパーを例に見てみましょう:

  • ページ数 (Pages count): 10

これにより、スクレイパーは検索結果のすべてのページを巡回し、最大数のリンクを収集します

プリセット 2: "クエリごとの競合のスクレイピング"

  • ページ数 (Pages count): 1
  • 結果フォーマット (Results format): $query: $totalcount\n

この場合、クエリごとの検索結果数(クエリの競合)を取得します。速度を上げるために、最初のページだけをスクレイピングすれば十分です

プリセットの作成

プリセットの作成

プリセットの作成は、スクレイパーの選択と、取得したい結果の定義から始まります。

次に、選択したスクレイパーの入力データが何になるかを理解する必要があります。上のスクリーンショットでは SE::GoogleSE::Google スクレイパーが選択されており、その入力データはブラウザで何かを検索する場合と同様の任意の文字列です。クエリファイルを選択するか、テキストフィールドにクエリを入力できます。

次に、スクレイパーの設定を上書き(オプションを選択)し、重複排除を追加する必要があります。クエリを処理する必要がある場合は クエリビルダー を使用できます。また、結果を何らかの方法で処理する必要がある場合は 結果ビルダー を使用できます。

次に、結果ファイル名の編集に注意を払い、必要に応じて自分の好みに変更してください。

最後の項目は 追加オプション の選択、特に Do log (ログを記録) オプションです。スクレイピングエラーの原因を知りたい場合に非常に役立ちます。

これらすべてを完了したら、プリセットを保存してタスクキューに追加する必要があります。

設定の上書き

Override preset - スクレイパー設定の素早い上書き。このオプションは タスクエディタ で直接追加できます。ワンクリックで複数のパラメータを追加できます。設定リストにはデフォルト値が表示され、オプションが太字で表示されている場合は、プリセットですでに上書きされていることを意味します

スクレイパー設定の上書き

この例では、Pages count (ページ数) オプションが上書きされ、5 に設定されています。

タスクでは無制限の数の Override preset オプションを使用できますが、変更が多い場合は、新しいプリセットを作成してすべての変更をそこに保存する方が便利です。

また、Save overrides to preset (上書きを保存) 機能を使用して、上書き内容を簡単に保存することもできます。これらは、選択したスクレイパーの個別のプリセットとして保存されます。

上書きされたオプションの保存

その後は、将来的にリストからこの保存されたプリセットを選択して使用するだけです。

特定のスクレイパー用の保存済みプリセットの選択

すべてのスクレイパーに共通の設定

各スクレイパーには独自の設定セットがあります。各スクレイパーの設定に関する情報は、対応するセクションで見つけることができます。

この表では、すべてのスクレイパーに共通の設定を示しています

パラメータ名デフォルト値説明
Request retries10各リクエストの試行回数。指定された試行回数内にリクエストが成功しない場合、失敗とみなされスキップされます
Use proxyプロキシを使用するかどうかを決定
Query format$queryクエリフォーマット
Result format各スクレイパーごとに固有結果出力フォーマット
Proxy ban time各スクレイパーごとに固有プロキシのバン時間(秒)
Request timeout60リクエストの最大待機時間(秒)
Request delay0リクエスト間の遅延(秒)。範囲でランダムな値を指定可能(例:10,30 - 10秒から30秒の遅延)
Proxy CheckerAllどのチェッカーのプロキシを使用するか(すべて、または特定のものを列挙)

HTTPプロトコルで動作するすべてのスクレイパーに共通

パラメータ名デフォルト値説明
Max body size各スクレイパーごとに固有検索結果ページの最大サイズ(バイト)
Use gzip転送トラフィックの圧縮を使用するかどうかを決定
Extra query stringクエリ文字列に追加のパラメータを指定可能
注記

各スクレイパーのデフォルト設定は異なる場合があります。これらは各スクレイパーの設定の default プリセットに保存されています。

プロキシチェッカーの設定

プロキシチェッカーの設定についての詳細

追加設定

追加設定
  • 改行コードは、結果をファイルに保存する際の行末を Unix または Windows のいずれかから選択できます
  • 数値形式 - A-Parser のインターフェースで数値をどのように表示するかを設定します
  • テンプレートマクロ