指定した文字列が各ページに含まれるか調べる「site-text-checker」を公開しました
「全ページのフッターに新しい会社名が入っているか」「古い電話番号が残っていないか」。サイト全体に手を入れたあと、こうした確認を目視で行うのは現実的ではありません。それを機械的に行うスクリプトを公開しました。
- リポジトリ: phrase-llc/site-text-checker
- ライセンス: MIT
何をするツールか
urls.txt に書いたURLを1つずつ取得し、引数で渡した文字列が含まれているかを判定します。 必要なのは curl だけです。
使い方
チェック対象のURLを1行ずつ書いた urls.txt を用意します。
https://example.com/page1
https://example.com/page2
http://localhost/page3
http://localhost:8080/page4
実行権限を与えて、探したい文字列を引数に渡します。
chmod +x check.sh
./check.sh "探したい文字列"
結果を残す場合はリダイレクトします。
./check.sh "探したい文字列" > result.log
使ううえでの注意
判定対象はHTMLソースなので、画面に表示されるテキストとは一致しません。 タグや属性値の中に文字列があってもヒットします。逆に、JavaScript で描画される文字はソースに現れないため検出できません。
引数を省略するとエラーになります。urls.txt はスクリプトと同じディレクトリに必要です。
Docker で実行する場合
Dockerfile を同梱していますが、ローカルホストを対象にするときは注意が要ります。
docker build -t keyword-checker .
docker run --rm keyword-checker "探したい文字列"
同一ホスト上の別コンテナで動いているサイトを対象にする場合、urls.txt の http://localhost は http://host.docker.internal に書き換える必要があります。Linux では host.docker.internal が使えないため、Docker を使わず curl を入れて直接実行するほうが確実です。
組み合わせて使う
sitemap2urls で書き出したURL一覧をそのまま urls.txt として使えます。サイト全体への一括置換のあと、抜けがないかを確認する用途を想定しています。