Могу ли я использовать wget для проверки ошибки 404 и не загружать ресурс? Если да, то как? благодаря
Ответы:
--spider
Именно для этого есть параметр командной строки . В этом режиме wget не загружает файлы, и его возвращаемое значение равно нулю, если ресурс был найден, и ненулевому, если он не был найден. Попробуйте это (в своей любимой оболочке):
wget -q --spider address
echo $?
Или, если вам нужен полный выход, оставьте -q
выключенное, так что просто wget --spider address
. -nv
показывает некоторый результат, но не такой, как по умолчанию.
wget --spider
отправляет запрос HEAD, а не GET.
wget --spider
выполняет HEAD и, в случае успеха, следует GET по тому же URL. Таким образом, с рекурсивным вариантом это полезно для создания кеша для веб-сайта на стороне сервера.
Если вы хотите спокойно проверить через $? без хлопот с выводом команды grep'ing wget вы можете использовать:
wget -q "http://blah.meh.com/my/path" -O /dev/null
Работает даже с URL-адресами, содержащими только путь, но имеет тот недостаток, что что-то действительно загружено, поэтому это не рекомендуется при проверке наличия больших файлов.
--spider
Аргумент имеет установить код возврата. Но, возможно, это потому, что через 4 года, 3 месяца и 7 дней паук стал умнее.
Да легко.
wget --spider www.bluespark.co.nz
Это даст вам
Resolving www.bluespark.co.nz... 210.48.79.121
Connecting to www.bluespark.co.nz[210.48.79.121]:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
200 OK
Если вы находитесь в каталоге, где только root имеет доступ для записи в system. Затем вы можете напрямую использовать wget www.example.com/wget-test
стандартную учетную запись пользователя. Таким образом, он попадет в URL-адрес, но из-за отсутствия файла с правами на запись не будет сохранен .. Этот метод отлично работает для меня, поскольку я использую этот метод для задания cron. Благодарю.
sthx
--spider
который делает именно то, что просит OP,