Я использую wget
программа, но я хочу, чтобы она не сохраняла скачиваемый html файл. Я хочу, чтобы его выбросили после получения. Как я могу это сделать?
Вы можете перенаправить вывод wget в / dev / null (или NUL в Windows):
wget http://www.example.com -O /dev/null
Файл не будет записан на диск, но будет загружен.
Если вы не хотите сохранять файл, и вы приняли решение о загрузке страницы в /dev/null
, Я полагаю, вы используете wget не для получения и анализа содержимого страницы..
Если вам действительно нужно вызвать какое-то удаленное действие, убедитесь, что страница существует, и так далее, я думаю, что было бы лучше вообще избежать загрузки основной страницы html.
Играть с wget
параметры, чтобы получить только то, что вам действительно нужно, например заголовки http, статус запроса и т. д.
предполагая, что вам нужно проверить, что страница в порядке (т. е. возвращен статус 200), вы можете сделать следующее:
wget --no-cache --spider http://your.server.tld/your/page.html
если вы хотите проанализировать возвращаемые сервером заголовки, сделайте следующее:
wget --no-cache -S http://your.server.tld/your/page.html
Увидеть страница руководства wget для дальнейших возможностей поиграть.
Видеть lynx
тоже как альтернатива wget.
Если вы также хотите распечатать в консоли результат, вы можете сделать:
wget -qO- http://www.example.com
$ wget http://www.somewebsite.com -O foo.html --delete-after
Другой альтернативой является использование такого инструмента, как curl
, который по умолчанию выводит удаленный контент в stdout
вместо сохранения в файл.
Обратите внимание на опцию "-spider". Я использую его, чтобы убедиться, что мои веб-сайты работают, и отправляю мне электронное письмо, если это не так. Это типичная запись из моего crontab:
46 */2 * * * if ! wget -q --spider http://www.rochesterflyingclub.com/ >/dev/null 2>&1; then echo "Rochester Flying Club site is down" ; fi
Для коробки * NIX и использования wget
, Предлагаю пропустить запись в файл. Я заметил на своем компьютере с Ubuntu 10.04, что wget -O /dev/null
заставил wget прервать загрузку после первой загрузки.
Я также заметил, что wget -O real-file
заставляет wget забывать фактические ссылки на странице. Он настаивает на index.html
присутствовать на каждой странице. Такие страницы могут не всегда присутствовать, и wget не запоминает ссылки, которые видел ранее.
mkdir /dev/shm/1
cd /dev/shm/1
wget --recursive --relative --no-parent ...
Обратите внимание, что нет -O file
вариант. wget выполнит запись в каталог $ PWD. В данном случае это RAM-only tmpfs файловая система. Запись здесь должна обходить отток диска (в зависимости от пространства подкачки) И отслеживать все ссылки. Это должно успешно просканировать весь сайт.
Потом, конечно,
rm --recursive --force /dev/shm/1/*
Используйте параметр --delete-after, который удаляет файл после его загрузки.
Изменить: Ой, я только что заметил, что уже был дан ответ.
Согласно справочной документации (wget -h), вы можете использовать параметр --spider, чтобы пропустить загрузку (версия 1.14).
Download:
-S, --server-response print server response.
--spider don't download anything.