無料でウェブページを監視し、変更があった場合にメール・スマートフォン・その他の手段で通知を受け取れる「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 | 用途 |
|---|---|
| beautify | HTML整形 |
| css | CSSセレクターでXML/HTMLを抽出 |
| csv2text | CSVをプレーンテキスト化 |
| element-by-class | class指定でHTML要素を抽出 |
| element-by-id | id指定でHTML要素を抽出 |
| element-by-style | style指定でHTML要素を抽出 |
| element-by-tag | tag指定でHTML要素を抽出 |
| format-json | JSONを整形 |
| grep | 正規表現に一致する行だけ抽出 |
| grepi | 正規表現に一致する行を除外 |
| hexdump | バイナリを16進ダンプ化 |
| html2text | HTMLをプレーンテキスト化 |
| pdf2text | PDFをテキスト化 |
| pretty-xml | XML整形 |
| ical2text | iCalendarをテキスト化 |
| ocr | Tesseract OCRで画像内テキストを抽出 |
| re.sub | Pythonの re.sub で置換 |
| re.findall | Pythonの re.findall で抽出 |
| reverse | 入力項目を反転 |
| sha1sum | SHA-1ハッシュ化 |
| shellpipe | シェルコマンドをフィルターとして実行 |
| sort | ソート |
| remove-duplicate-lines | 重複行削除 |
| strip | 前後空白削除 |
| striplines | 各行の前後空白削除 |
| xpath | XPathでXML/HTMLを抽出 |
| jq | JSONを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が支持されています。
・関連記事
ウェブサイトが更新されたら通知してくれる無料ツール「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-….






