2009-09-29 68 views
1

我使用Google搜索,找不到任何可以將網頁與以前版本進行比較的功能。觀看網頁更改

在這種情況下,我試圖看的頁面是link text。有些服務可以看到一個頁面,但我想在我自己的服務器上進行設置。

我將其設置爲一個wiki,以便任何人都可以添加到代碼中。這是我的想法

  1. 檢查是否存在以前版本的文件。如果爲false,則下載頁面
  2. 如果存在頁面,則通過差異來發現差異並通過電子郵件發送新內容以及新版本和舊版本的日期。

該腳本將夜間通過cron或按需通過瀏覽器被稱爲(後者是不是優先)

聽起來很簡單,也許我只是沒有在正確的地方尋找。

+0

有一對夫婦的事情,可以讓你在正確的方向: http://www.diffbot.com 和厚應用程序 http://www.changedetect.com 後者確實允許您生成差異電子郵件。 不知道這是否是完整的解決方案,但 – 2009-09-29 19:40:09

+0

我註冊了這兩個服務,我們將看看它們是如何工作的。但是再一次,如果有一個簡單的腳本可以放在網絡服務器上並通過cron安排,那真的會更好。 – shaiss 2009-09-30 16:46:58

回答

0

您可以檢查This SO posting得到一些想法和有關檢測「真」改變網頁的挑戰也是信息(波動的廣告塊,和其他的「噪音」)

+0

有效的帖子,但我不想指紋,因爲在這種情況下,它的一個網站每週都會發生一些小的變化。所以即使變化很小也很高興看到它。 – shaiss 2009-09-30 17:00:35

3

也許一個簡單的SH-這樣的腳本,具有wget,diff &測試?

#!/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" 

更新:通過三通管,小的拼寫&刪除的$ TMPFILE

+0

偉大的腳本,我已經在我的網絡服務器上設置了它,並將很快回復 – shaiss 2009-09-30 16:52:30

+0

腳本的作品就像一個魅力,但我仍然相信理想的解決方案將是一個網頁語言,通過瀏覽器提供訪問 – shaiss 2009-09-30 18:58:45

+0

tee-管道將差異寫入文件(並且之後,將其傳送給郵件)。 對於更復雜的版本,您可能希望切換到PHP或類似的東西:) – osti 2009-10-03 11:25:25