Я використовую wget
програму, але хочу, щоб вона не зберігала html-файл, який я завантажую. Я хочу, щоб він був відкинутий після його отримання. Як це зробити?
Я використовую 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.
--no-cache
на сторінці man говориться, що це призводить до того, що wget "надсилає віддаленому серверу відповідну директиву (" Pragma: no-cache "), щоб отримати файл з віддаленого сервісу"
$ wget http://www.somewebsite.com -O foo.html --delete-after
--delete-after
варіант - це вибір, коли потрібно завантажувати рекурсивно, але ви хочете відкинути фактичний вміст.
-O /dev/null
Якщо ви також хочете роздрукувати на консолі результат, ви можете це зробити:
wget -qO- http://www.example.com
q
тихий режим (він не виводить прогрес та іншу інформацію) та O-
(записуйте отриманий документ на консоль).
Ознайомтеся з опцією "-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. У цьому випадку це файлова система tmpfs лише для RAM . Якщо писати тут, слід обійти дисковий звук (залежно від місця обміну) І відстежувати всі посилання. Це має успішно сканувати весь веб-сайт.
Потім, звичайно,
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.
/dev/null
спрацювала б ця річ?