レビュー

無料でウェブページを監視し、変更があった場合にメール・スマートフォン・その他の手段で通知を受け取れる「urlwatch」、オープンソースでセルフホスト可能


ブログや企業サイト、官公庁のお知らせページなど、更新を追いたいのにRSSが用意されていないページは今でも多く存在します。「urlwatch」を使うと、指定したページを定期的に取得して前回との差分を比較し、変更があった時だけ通知を受け取ることが可能です。メールやSlack・Discord・Telegramなどに対応しており、自分専用の更新通知システムを構築できます。

urlwatch monitors webpages for you (thp.io)
https://thp.io/2008/urlwatch/


thp/urlwatch: Watch (parts of) webpages and get notified when something changes via e-mail, on your phone or via other means. Highly configurable.
https://github.com/thp/urlwatch/

◆urlwatchの機能
Webページやローカルコマンドの出力を定期的に取得し、前回との差分を検出して通知するPython製の変更監視ツールです。

◆urlwatchのインストール方法
Windows 11上でUbuntu 24.04.4 LTSがセットアップされたWSL2にインストールします。pipxを利用するため、以下のコマンドでpipxを導入します。

sudo apt update
sudo apt install -y pipx
pipx ensurepath


いったんシェルを立ち上げ直し、urlwatchをインストール。

pipx install urlwatch


◆urlwatchの使い方
「urlwatch」を実行するたびに前回との差分を確認し、変更があれば通知する仕組みのため、cronやタスクスケジューラなどで定期実行する必要があります。

◆監視対象の設定方法
「urlwatch --edit」で設定ファイルを開き、監視する内容を記述します。サイト全体を監視する最もシンプルな設定は以下の通りです。

name: "urlwatch webpage"
url: "https://thp.io/2008/urlwatch/"


フィルター機能を使うとさまざまな条件で監視対象を絞り込めます。例えばGIGAZINEのトップページで最新記事のタイトルを監視することで、新しい記事が公開されたときに通知を受け取れます。

name: "GIGAZINE New Article"
url: https://gigazine.net/
filter:
  - xpath: "(//h2/a)[1]"
  - html2text


利用できる主なフィルターは以下の通りです。これらを組み合わせることで、Webページ上の特定の部分だけを監視したり、柔軟なデータ加工を行ったりすることが可能です。

Filter用途
beautifyHTML整形
cssCSSセレクターでXML/HTMLを抽出
csv2textCSVをプレーンテキスト化
element-by-classclass指定でHTML要素を抽出
element-by-idid指定でHTML要素を抽出
element-by-stylestyle指定でHTML要素を抽出
element-by-tagtag指定でHTML要素を抽出
format-jsonJSONを整形
grep正規表現に一致する行だけ抽出
grepi正規表現に一致する行を除外
hexdumpバイナリを16進ダンプ化
html2textHTMLをプレーンテキスト化
pdf2textPDFをテキスト化
pretty-xmlXML整形
ical2textiCalendarをテキスト化
ocrTesseract OCRで画像内テキストを抽出
re.subPythonの re.sub で置換
re.findallPythonの re.findall で抽出
reverse入力項目を反転
sha1sumSHA-1ハッシュ化
shellpipeシェルコマンドをフィルターとして実行
sortソート
remove-duplicate-lines重複行削除
strip前後空白削除
striplines各行の前後空白削除
xpathXPathでXML/HTMLを抽出
jqJSONをjqで抽出・変換


Webページ以外にもあらゆる出力が監視対象になります。「データベースにユーザーが追加されたとき」は以下のように設定することで、出力件数の変化を検知して通知できます。

name: DB件数
command: mysql -e "SELECT COUNT(*) FROM users;"


◆urlwatchの通知方法
公式では以下の通知方法がデフォルトで用意されています。
Pushover
Pushbullet
Telegram
Slack
Mattermost
Discord
Gotify
ntfy.sh
IFTTT
Matrix
Gmail SMTP
Amazon SES
SMTP
XMPP
Prowl

その他、Shellコマンドも実行できるのであらゆる通知方法に対応可能です。

urlwatchは2008年に公開された老舗のプロジェクトです。VisualpingのようなGUIで設定できる簡易ツールもある中、より高度な制御を求めるユーザーからは依然としてurlwatchが支持されています。

この記事のタイトルとURLをコピーする

・関連記事
ウェブサイトが更新されたら通知してくれる無料ツール「Visualping」 - GIGAZINE

無料でSEOトラッキングができる「SerpBear」、オープンソースでセルフホスト可 - GIGAZINE

無料でウェブページの更新通知&更新した部分だけをハイライトで一目でわかるようにするFirefox拡張機能「Update Scanner」 - GIGAZINE

Twitter・YouTube・RSSなどの更新通知をまとめて確認できる拡張機能「Fraidycat」 - GIGAZINE

GitHubのサービスを駆使してウェブサイトの死活監視が無料で行える「Upptime」 - GIGAZINE

in ソフトウェア,   レビュー, Posted by darkhorse_logmk

You can read the machine translated English article 'urlwatch' is a free, open-source, self-….