Назад | Перейти на главную страницу

Заставить `wget` не сохранять страницу

Я использую 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

Если вам нужно сканировать веб-сайт с помощью wget и вы хотите минимизировать отток диска ...

Для коробки * 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.