指定した文字列が各ページに含まれるか調べる「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
引数を省略するとエラーになります。
urls.txt はスクリプトと同じディレクトリに必要です。
検出できるものとできないもの
判定対象はHTMLソースなので、画面に表示されるテキストとは一致しません。 タグや属性値の中に文字列があってもヒットします。 逆に、JavaScript で描画される文字はソースに現れないため検出できません。
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 として使えます。
サイト全体への一括置換のあと、抜けがないかを確認する用途を想定しています。