Command-Line

用於檢查 URL 何時更新的命令行工具?

  • March 4, 2022

當然可以在 Python 中使用 HTTP 標頭來查詢 URL 以查看上次修改的時間,但我想知道是否有現有的工具可以為我做到這一點?我會想像這樣的事情:

% checkurl http://unix.stackexchange.com/questions/247445/
Fri Dec  4 16:59:28 EST 2015

或許:

% checkurl "+%Y%m%d" http://unix.stackexchange.com/questions/247445/
20151204

作為鈴聲和/或口哨。我不認為 wget 或 curl 有我需要的東西,但是被證明是錯誤的我不會感到驚訝。外面有這樣的東西嗎?

這似乎符合您的要求(更新為使用 ‘\r\n’ 作為響應數據的記錄分隔符):

#!/bin/sh

get_url_date()
{
   curl --silent --head "${1:?URL ARG REQUIRED}" | 
   awk -v RS='\r\n' '
       /Last-Modified:/ {
           gsub("^[^ ]*: *", "")
           print
           exit
       }
   '
}

unset date_format
case $1 in
   (+*)
       date_format="$1"
       shift
       ;;
esac

url_date="$(get_url_date "${1:?URL ARG REQUIRED}")"

if [ -z "$url_date" ]
then
   exit 1
fi

if [ "$date_format" != "" ]
then
   date "$date_format" -d"$url_date"
else
   echo "$url_date"
fi

Perl 單行:

% perl -MLWP::Simple -MDate::Format -e 'print time2str "%C\n", (head $ARGV[0])[2]' http://example.com
Sat Aug 10 02:54:35 EEST 2013

在現代 Linux 或 FreeBSD 系統上,可能已經安裝了它所需的模組。

引用自:https://unix.stackexchange.com/questions/247452