Korzystam z wget
programu, ale chcę, aby nie zapisywał pliku HTML, który pobieram. Chcę, aby została odrzucona po otrzymaniu. W jaki sposób mogę to zrobić?
Korzystam z wget
programu, ale chcę, aby nie zapisywał pliku HTML, który pobieram. Chcę, aby została odrzucona po otrzymaniu. W jaki sposób mogę to zrobić?
Odpowiedzi:
Możesz przekierować wyjście wget do / dev / null (lub NUL w Windows):
wget http://www.example.com -O /dev/null
Plik nie zostanie zapisany na dysku, ale zostanie pobrany.
Jeśli nie chcesz zapisać pliku i zaakceptowałeś rozwiązanie pobierania strony /dev/null
, to chyba używasz wget, aby nie pobierać i analizować zawartości strony .
Jeśli twoją prawdziwą potrzebą jest uruchomienie jakiejś zdalnej akcji, sprawdź, czy strona istnieje i tak dalej. Myślę, że lepiej byłoby w ogóle nie pobierać strony HTML.
Graj z wget
opcjami, aby odzyskać tylko to, czego naprawdę potrzebujesz, tj. Nagłówki http, status żądania itp.
zakładając, że musisz sprawdzić, czy strona jest w porządku (tzn. zwracany status to 200), możesz wykonać następujące czynności:
wget --no-cache --spider http://your.server.tld/your/page.html
jeśli chcesz przeanalizować zwrócone przez serwer nagłówki, wykonaj następujące czynności:
wget --no-cache -S http://your.server.tld/your/page.html
Zobacz stronę manuala wget, aby uzyskać dalsze opcje gry.
Zobacz lynx
też, jako alternatywę dla wget.
--no-cache
na stronie podręcznika mówi, że powoduje, że wget „wysyła zdalnemu serwerowi odpowiednią dyrektywę („ Pragma: no-cache ”), aby pobrać plik ze zdalnej usługi”
$ wget http://www.somewebsite.com -O foo.html --delete-after
--delete-after
opcja jest wyborem, gdy musisz pobierać rekurencyjnie, ale chcesz odrzucić rzeczywistą zawartość.
-O /dev/null
Jeśli chcesz również wydrukować w konsoli, możesz:
wget -qO- http://www.example.com
q
trybie cichym (nie wyświetla postępu i innych informacji) oraz O-
(zapisują pobrany dokument na konsoli).
Sprawdź opcję „-spider”. Używam go, aby upewnić się, że moje strony internetowe działają, i jeśli nie, wyślą mi e-mail. To typowy wpis z mojego crontab:
46 */2 * * * if ! wget -q --spider http://www.rochesterflyingclub.com/ >/dev/null 2>&1; then echo "Rochester Flying Club site is down" ; fi
W przypadku pola * NIX i używania wget
sugeruję pominięcie zapisu do pliku. Zauważyłem na moim urządzeniu Ubuntu 10.04, które wget -O /dev/null
spowodowało , że wget przerwał pobieranie po pierwszym pobraniu.
Zauważyłem również, że wget -O real-file
powoduje to, że wget zapomina o rzeczywistych linkach na stronie. Nalega na index.html
obecność na każdej stronie. Takie strony nie zawsze mogą być obecne i wget nie pamięta linków, które widział wcześniej.
mkdir /dev/shm/1
cd /dev/shm/1
wget --recursive --relative --no-parent ...
Zauważ, że nie ma -O file
opcji. wget zapisze w katalogu $ PWD. W tym przypadku jest to system plików tmpfs zawierający tylko pamięć RAM . Pisząc tutaj, należy ominąć rezygnację z dysku (w zależności od przestrzeni wymiany) ORAZ śledzić wszystkie linki. To powinno zindeksować całą stronę.
Potem oczywiście
rm --recursive --force /dev/shm/1/*
Użyj opcji --delete-after, która usuwa plik po pobraniu.
Edycja: Ups, właśnie zauważyłem, że odpowiedź została już udzielona.
Zgodnie z dokumentem pomocy (wget -h) możesz użyć opcji --spider, aby pominąć pobieranie (wersja 1.14).
Download:
-S, --server-response print server response.
--spider don't download anything.
/dev/null
zadziała?