wget
Programı kullanıyorum , ancak indirdiğim html dosyasını kaydetmemesini istiyorum. Alındıktan sonra atılmasını istiyorum. Bunu nasıl yaparım?
wget
Programı kullanıyorum , ancak indirdiğim html dosyasını kaydetmemesini istiyorum. Alındıktan sonra atılmasını istiyorum. Bunu nasıl yaparım?
Yanıtlar:
Wget çıktısını / dev / null (ya da Windows'ta NUL) konumuna yönlendirebilirsiniz:
wget http://www.example.com -O /dev/null
Dosya diske yazılmayacak, ancak indirilecek.
Dosyayı kaydetmek istemiyorsanız ve sayfayı indirme çözümü kabul ettiyseniz /dev/null
, sana olsun ve sayfa içeriğini ayrıştırmak için değil wget kullandığınızı varsayalım .
Gerçek gereksiniminiz uzak bir işlemi tetiklemekse, sayfanın var olduğunu kontrol edin ve böylece html gövde sayfasını indirmekten kaçınmanın daha iyi olacağını düşünüyorum.
wget
Yalnızca gerçekten ihtiyacınız olanı, örneğin http başlıklarını, istek durumunu vb. Almak için seçeneklerle oynayın
Sayfayı kontrol etmeniz gerektiğini varsayarsak (örneğin, döndürülen durum 200'dür) aşağıdakileri yapabilirsiniz:
wget --no-cache --spider http://your.server.tld/your/page.html
Sunucuyu ayrıştırmak istiyorsanız, döndürülen başlıklar aşağıdakileri yapın:
wget --no-cache -S http://your.server.tld/your/page.html
Bkz wget man sayfasını başka seçenekler ile oynamak için.
Bak lynx
, wget'e alternatif olarak.
--no-cache
man sayfasında wget'in "uzak sunucuya dosyayı uzak hizmetten alması için uygun bir yönerge ('Pragma: no-cache') göndermesi" nedenleri olduğunu söyledi
$ wget http://www.somewebsite.com -O foo.html --delete-after
--delete-after
seçenek, yinelemeli olarak indirmek zorunda olduğunuz ancak gerçek içeriği silmek istediğiniz zaman yapılan seçenektir.
-O /dev/null
Konsolda da yazdırmak istiyorsanız, sonucu yapabilirsiniz:
wget -qO- http://www.example.com
q
sessiz moddadır (ilerleme ve diğer bilgileri vermez) ve O-
(alınan belgeyi konsola yazın).
"-Spider" seçeneğine göz atın. Web sitelerimin hazır olduğundan emin olmak için kullanıyorum ve olmasa da bana bir e-posta gönder. Bu benim crontab'dan tipik bir giriştir:
46 */2 * * * if ! wget -q --spider http://www.rochesterflyingclub.com/ >/dev/null 2>&1; then echo "Rochester Flying Club site is down" ; fi
Bir * NIX kutusu ve kullanımı için wget
, bir dosyaya yazmayı atlamanızı öneririm. Ubuntu 10.04 kutumda wget -O /dev/null
, ilk indirmeden sonra indirme işleminin iptal edilmesine neden olan wget fark ettim .
Ayrıca wget -O real-file
, wget'ın sayfadaki gerçek bağlantıları unutmasına neden olduğunu da fark ettim . index.html
Her sayfada bulunması konusunda ısrar ediyor . Bu tür sayfalar her zaman mevcut olmayabilir ve wget daha önce gördüğü bağlantıları hatırlamaz.
mkdir /dev/shm/1
cd /dev/shm/1
wget --recursive --relative --no-parent ...
Dikkat -O file
seçeneği yoktur . wget $ PWD dizinine yazacaktır. Bu durumda bu sadece RAM tmpfs dosya sistemidir. Buraya yazmak, disk karmaşasını atlamalı (takas alanına bağlı olarak) VE tüm bağlantıları izlemelidir. Bu, web sitesinin tamamını başarıyla taramalıdır.
Daha sonra, elbette,
rm --recursive --force /dev/shm/1/*
Dosyayı indirdikten sonra silen --delete-after seçeneğini kullanın.
Düzenleme: Hata, ben zaten cevaplanmış olduğunu farkettim.
Yardım belgesine göre (wget -h), indirme işlemini atlamak için --spider seçeneğini kullanabilirsiniz (sürüm 1.14).
Download:
-S, --server-response print server response.
--spider don't download anything.
/dev/null
İş çalışır mı?