First CH Apps / FAQ×サイト 記載差分チェッカー
FAQ・ヘルプページのURLと、比べたい本体サイトのページ(料金表・会社概要・ご利用ガイドなど最大3件)のURLを入れると、各ページをサーバー側で取得し、料金・営業時間や受付時間・電話番号・日付・「〇日以内」などの期間を抜き出して、同じ話題なのに値が違う箇所を並べて表示します。料金改定や受付時間の変更のあと、FAQだけ古いまま残っている記載を探す用途を想定しています。
直し方の文案づくりや要約は行いません(食い違いの場所と値を示すだけです)。リンクをたどって巡回することもなく、入力した最大4ページだけを1回ずつ取得します。
各ページのHTMLから、本文の文字だけを取り出して読みます(script・style・コメントは読みません)。全角の数字・記号は半角にそろえ、「1,000円」と「1,000円」、「03-0000-0000」と「(03) 0000-0000」、「9時〜18時」と「9:00〜18:00」、「2週間」と「14日」は同じ値として扱います。
値ごとに、同じ文の前後(無ければ直前の行=FAQの質問や表の見出し)にある語から話題を決めます。例: 「返品」「送料」「受付時間」「年末年始休業」。「到着後」「購入から」のような数え始めの語は話題にしません。料金は「〇〇プラン」も手がかりにし、プラン名が両方にあるときは同じプランどうしだけを比べます。
同じ種類・同じ話題で、FAQの値がサイト側のその話題の値に1つも無ければ「食い違い」です。サイト側に値が多いだけ(複数プランの料金表など)は食い違いにしません。
税込と税抜が明記されていれば換算して比べます(税抜1,000円と税込1,100円は一致)。年の書かれていない日付(12月29日)は月日が同じなら一致とします。
話題の語が見つからない値は比べません(「1,000円」だけでは何の値段か分からないため)。電話番号だけは話題が無くても「電話番号」として比べます。
限界: JavaScriptで後から描画する本文、画像やPDFの中の文字、ログインが必要なページは読めません。曜日の区別(平日・土日)は表示しますが比較には使いません。結果は見直しの手がかりとして使い、最終的な正誤は担当者が確かめてください。
送るもの: 入力されたURL(FAQ 1件・サイト最大3件)だけ。当社サーバー(Cloudflare Workers)が各URLを公開ページとして1回ずつ取得します。リンクはたどりません。
保存するもの: ありません。比較はリクエストの中だけで完結し、URL・取得した内容・結果のいずれもデータベース(KV/D1)へ書き込みません。処理が終わった時点でメモリから消えます。
返すもの: 抜き出した値と、その位置を示す数十字の抜粋だけです。取得したHTMLの原文は再配信しません(このアプリは他サイトを閲覧するための中継として使えません)。
注意: 取得は公開GETのみで、Cookieや認証情報は送りません。社内ネットワーク・localhost・プライベートIP宛のURLは受け付けません。
POST /faq-site-diff/api/check に JSON({"faq": "https://example.com/faq/", "sites": ["https://example.com/price/"]}・sites は最大3件)またはフォームを送ると、同じ比較結果を JSON で返します。