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

インターフェースによる設定

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 - デフォルトの結果フォーマットを指定します

その他のフィールドはすべてオプションです。スクレイパーの動作に影響を与えるパラメータのリストは以下の通りです:

パラメータ名タイプ説明 (デフォルト値)
timeoutnumberリクエストの最大待機時間(秒) (60)
useproxyboolean / 0 / 1プロキシを使用するかどうかを決定 (1)
max_sizenumber結果ファイルの最大サイズ (1 * 1024 * 1024)
proxyretriesnumber各リクエストの試行回数。指定された回数内にリクエストが成功しない場合、失敗とみなされスキップされます (10)
requestdelaynumber / stringリクエスト間の遅延(秒) (0)。 10,30 のように範囲でランダムな値を指定することも可能です(10秒から30秒の遅延)
proxybannedcleanupnumberプロキシのBAN時間(秒) (600)
pagecountnumberスクレイピングするページ数 (1)
parsecodes{ [code: string]: any }成功とみなされるリクエストのレスポンスコードの値 (any)
queryformatstringクエリフォーマット ($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]]
],
];
上記の構成によるインターフェースのスクリーンショット