2012年 12月 19日

ウェブページの差分をとってメールで送るワンライナー

cron に適当に登録しとけば差分とって (差分があったら) メールを送ってくれるのがほしかった。具体的にはニュースリリースとかで、新製品情報とかを即時通知してほしい。

簡単にかけるかと思ったけど微妙に長くなってしまった。もっと簡単にできる方法を教えてください。

# 実際は一行
LANG=ja_JP.UTF-8 w3m -dump http://cweb.canon.jp/newsrelease/index.html?id=generalNews > /home/cho45/tmp/canon_news.1
  && diff -u /home/cho45/tmp/canon_news /home/cho45/tmp/canon_news.1 > /tmp/diff
  || cat /tmp/diff | mail cho45@example.com -s "[DIFF] canon" 
  ; mv /home/cho45/tmp/canon_news.1 /home/cho45/tmp/canon_news 

この例の場合 RSS もあるので、RSS の差分を通知してくれるサービス (きっとあるだろう) を使ってもいいと思うが、探すのがめんどうなので w3m 使って HTML レンダリングした結果を差分とったほうがはやいと思った。