段階の分け方
各段階は前段の出力だけを入力とし、途中結果を保存します。これにより、判定結果が変わったときに、取得内容が変わったのか判定ロジックが変わったのかを区別できます。
- 取得 (fetch)
HTTPステータス、ヘッダー、初期HTMLを保存します。レンダリングはこの段階では行いません。
- 描画 (render)
必要なページのみJavaScript実行後のDOMを取得し、初期HTMLとの差分を記録します。
- 抽出 (extract)
タイトル、見出し階層、本文、リンク、構造化データを構造として取り出します。
- 正規化 (normalize)
抽出結果を、判定ロジックから独立したスキーマへ変換します。
- 判定 (evaluate)
正規化データに対して規則を適用し、検出根拠つきの結果を出します。
- 比較 (compare)
内部期待値および前回結果と突合し、回帰を検出します。