wget --spider:如何判斷損壞的連結來自何處

wget --spider:如何判斷損壞的連結來自何處

有時我會使用 wget 的內建蜘蛛模式來快速檢查本地網站是否有損壞的鏈接,以方便使用。今天早上,我將注意力轉向了一個我們剛剛進行了重大更改的生產站點,它出現了 3 個損壞的鏈接,但似乎無法判斷它們在哪裡! (它只說明了他們連結到的內容,並且沒有直接的方法將其單獨關聯回頁面。)

我目前使用的選項是wget -r -nv --spider http://www.domain.com/ -o /path/to/log.txt.有誰知道我忽略的一個選項,一種讀取輸出的方法,或者甚至是這個命令的簡單替代品,它也能讓我知道鏈接出現在哪個文件中(最好是行#)?

答案1

您應該能夠結合 wget 運行來查看 Web 伺服器日誌。404在日誌檔案中尋找並提取該referrer欄位。這將告訴您包含損壞連結的頁面。

然後只需檢查該頁面是否有違規連結即可。

答案2

一個好方法(不涉及網頁伺服器日誌)是使用 flag--debug和 grep^Referer:

在命令列上:

wget -r -nv --spider http://www.domain.com/ 2>&1 | egrep -A 1 '(^---response end---$|^--[0-9]{4}-[0-9]{2}-[0-9]{2}|^[0-9]{4}-[0-9]{2}-[0-9]{2} ERROR|^Referer:|^Remote file does not)'

您可以在日誌上執行類似的 grep 操作。警告:某些 wget 編譯時不支持--debug

相關內容