Вопрос: Создание `wget` не сохраняет страницу


Я использую wget , но я хочу, чтобы он не сохранял загружаемый html-файл. Я хочу, чтобы он был отброшен после его получения. Как мне это сделать?


58
2017-10-10 02:05


Источник


Я новичок в Linux. /dev/null вещь работа? - Ram Rachum
Так в чем же смысл его скачать? - Anonymous
@Anonymous Я полагаю, чтобы подчеркнуть удаленный сервер .. Если вы не заботитесь о содержании, я бы, вероятно, использовал apachebench (ab). - Tom O'Connor


Ответы:


Вы можете перенаправить вывод wget в / dev / null (или NUL в Windows):

wget http://www.example.com -O /dev/null

Файл не будет записан на диск, но он будет загружен.


76
2017-10-10 03:01



Это не сохраняет страницу, но отправляет мне электронное письмо. Также можно отключить отправку по электронной почте? - trante


Если вы не хотите сохранять файл, и вы приняли решение о загрузке страницы в /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 man page для дальнейших вариантов игры.
Видеть lynx тоже, как альтернатива wget.


28
2017-10-10 06:38



Я смущен. --no-cacheна странице man говорит, что он заставляет wget «отправить удаленному серверу соответствующую директиву (« Pragma: no-cache »), чтобы получить файл из удаленного сервиса» - Gaia
Он говорит серверу, что ваш клиент не хочет кэшированную версию файла. Мы хотим получить самую последнюю версию ресурса, который мы запрашиваем для - drAlberT


$ wget http://www.somewebsite.com -O foo.html --delete-after


14
2017-10-10 02:16



Большое спасибо. --delete-after опция - выбор, когда вам приходится загружаться рекурсивно, но вы хотите отказаться от фактического содержимого. - egelev


Если вы также хотите распечатать в консоли результат, вы можете сделать:

wget -qO- http://www.example.com

12
2018-03-31 18:24



Мне нравится этот вариант лучше всего. Это давайте мне посмотреть, что получится, но не спасет его. Коммутаторы q (он не выводит прогресс и другую информацию), и O- (напишите полученный документ на консоль). - Octopus


Другая альтернатива - использовать такой инструмент, как curl, который по умолчанию выводит удаленный контент на stdout вместо сохранения его в файл.


7
2017-10-10 03:49





Проверьте опцию -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

3
2017-10-10 02:46





Если вам нужно сканировать веб-сайт с помощью 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-RAM TMPFS файловая система. Написание здесь должно обходить отторжение диска (в зависимости от места подкачки) И отслеживать все ссылки. Это должно полностью сканировать весь сайт.

Позже, конечно,

 rm --recursive --force /dev/shm/1/*

2
2018-04-05 21:05





Используйте параметр --delete-after, который удаляет файл после его загрузки.

Изменить: К сожалению, я только заметил, что уже был дан ответ.


1
2017-10-10 03:16