观看网页以了解更改

时间:2009-09-29 19:33:02

标签: comparison diff get watch

我用谷歌搜索,找不到任何将网页与之前版本进行比较的方法。

在这种情况下,我要查看的页面是link text。有些服务可以观看页面,但我想在我自己的服务器上进行设置。

我已将其设置为wiki,因此任何人都可以添加代码。这是我的想法

  1. 检查是否存在以前版本的文件。如果为false则下载页面
  2. 如果页面存在,则发现差异并通过电子邮件发送新内容以及新旧版本的日期。
  3. 此脚本将通过cron或按需通过浏览器每晚调用(后者不是优先事项)

    听起来很简单,也许我只是没找对地方。

2 个答案:

答案 0 :(得分:3)

也许是这样一个简单的sh-script,以wget,diff& amp;测试

#!/bin/sh

WWWURI="http://foo.bar/testfile.html"
LOCALCOPY="testfile.html"
TMPFILE="tmpfile"
WEBFILE="changed.html"

MAILADDRESS="$(whoami)"
SUBJECT_NEWFILE="$LOCALCOPY is new"
BODY_NEWFILE="first version of $LOCALCOPY loaded"
SUBJECT_CHANGEDFILE="$LOCALCOPY updated"
SUBJECT_NOTCHANGED="$LOCALCOPY not updated"
BODY_CHANGEDFILE="new version of $LOCALCOPY"

# test for old file
if [ -e "$LOCALCOPY" ]
then
    mv "$LOCALCOPY" "$LOCALCOPY.bak"
    wget "$WWWURI" -O"$LOCALCOPY" -o/dev/null
    diff "$LOCALCOPY" "$LOCALCOPY.bak" > $TMPFILE

# test for update
    if [ -s "$TMPFILE" ]
    then
        echo "$SUBJECT_CHANGEDFILE"
        ( echo "$BODY_CHANGEDFILE" ; cat "$TMPFILE" ) | tee "$WEBFILE" | mail -s "$SUBJECT_CHANGEDFILE" "$MAILADDRESS"
    else
        echo "$SUBJECT_NOTCHANGED"
    fi
else
    wget "$WWWURI" -O"$LOCALCOPY" -o/dev/null
    echo "$BODY_NEWFILE"
    echo "$BODY_NEWFILE" | tee "$WEBFILE" | mail -s "$SUBJECT_NEWFILE" "$MAILADDRESS"
fi
[ -e "$TMPFILE" ] && rm "$TMPFILE"

更新:穿过T恤管,小拼写&删除$ TMPFILE

答案 1 :(得分:0)

您可以查看This SO posting以获取一些想法以及有关检测网页“真实”更改(具有波动的广告块和其他“噪音”)的挑战的信息