インターフェースによる設定
A-Parserでは、宣言的なスタイルで設定を定義できるほか、スクレイパーのソースコードを変更することなく、インターフェースを使用してプリセットを作成および編集できます。
static defaultConf
static defaultConf = {
version: '0.0.1',
results: {
flat: [
['title', 'Title'],
],
arrays: {
}
},
results_format: "Title: $title\n",
exampleKey: 'value',
};
スクレイパーのデフォルト設定です。設定はクラスオブジェクト内で this.conf プロパティを通じて利用可能になります。以下のフィールドは必須です:
results- このスクレイパーが返すことができる結果を宣言的なスタイルで記述しますresults_format- デフォルトの結果フォーマットを指定します
その他のフィールドはすべてオプションです。スクレイパーの動作に影響を与えるパラメータのリストは以下の通りです:
| パラメータ名 | タイプ | 説明 (デフォルト値) |
|---|---|---|
| timeout | number | リクエストの最大待機時間(秒) (60) |
| useproxy | boolean / 0 / 1 | プロキシを使用するかどうかを決定 (1) |
| max_size | number | 結果ファイルの最大サイズ (1 * 1024 * 1024) |
| proxyretries | number | 各リクエストの試行回数。指定された回数内にリクエストが成功しない場合、失敗とみなされスキップされます (10) |
| requestdelay | number / string | リクエスト間の遅延(秒) (0)。 10,30 のように範囲でランダムな値を指定することも可能です(10秒から30秒の遅延) |
| proxybannedcleanup | number | プロキシのBAN時間(秒) (600) |
| pagecount | number | スクレイピングするページ数 (1) |
| parsecodes | { [code: string]: any } | 成功とみなされるリクエストのレスポンスコードの値 (any) |
| queryformat | string | クエリフォーマット ($query) |
注記
また、インターフェースを通じて編集可能な任意のフィールドを定義することもできます。
static editableConf
この設定は、インターフェースを通じて編集可能な設定フィールドのリストを定義します。インターフェースには以下のフィールドタイプが存在します:
textfield- 数値や文字列を自由に入力するためのフィールドcheckbox- 有効/無効の状態を切り替えるフラグcombobox- 1つまたは複数の値を選択するドロップダウン- 複数選択はオプション
{ multiSelect: 1 }を通じて設定します
editableConf は配列であり、各要素が対応する設定フィールドを記述します:
static editableConf: [
...[
fieldName: string,
fieldConfig: [
fieldType: 'textfield' | 'combobox' | 'checkbox',
fieldLabel: string,
fieldOptions?: {},
...fieldValues: [fieldValue: any, valueTitle: string][]
]
][]
];
編集可能なフィールドの宣言例:
static get editableConf() {
let editableConf: typeof BaseParser.editableConf = [
['device',
['combobox', 'Device',
['desktop', 'Modern desktop computer (Windows 10, Chrome 84)'],
['mobile', 'Mobile device (iPhone X, iOS 11)']
]
],
['pagecount', ['combobox', 'Pages count']],
['linksperpage',
['combobox', 'Links per page',
[10, '10'],
[20, '20'],
[30, '30'],
[50, '50']
]
],
];
for (let page = 1; page <= 25; page++)
editableConf[1][1].push([page, page]);
return editableConf;
}

注記
この例では editableConf にゲッターメソッドを使用していることに注意してください。これにより、ページリストの生成などの追加処理が可能になります。より単純なケースでは、defaultConf と同様にクラスの静的プロパティを定義できます。
static parserOptions
parserOptions は設定を定義する別の方法であり、オプションのリストはスクレイパーのコンテキストメニューに追加項目として表示されます。
オプションの宣言は editableConf と同様に機能します:
static parserOptions: [
...[
fieldName: string,
menuTitle: string,
fieldConfig: [
fieldType: 'textfield' | 'combobox' | 'checkbox',
fieldLabel: string,
fieldOptions?: {},
...fieldValues: [fieldValue: any, valueTitle: string][]
]
][]
];
追加フィールドの宣言例:
static parserOptions: typeof BaseParser.parserOptions = [
['parseAll', 'Parse all results',
['checkbox', 'Parse all results']
],
['parseLevel', 'Parse related to level',
['combobox', 'Parse Related to level', [1, 1], [2, 2], [3, 3]]
],
];
