`Wget` yapma, sayfayı kaydetme


68

wgetProgramı kullanıyorum , ancak indirdiğim html dosyasını kaydetmemesini istiyorum. Alındıktan sonra atılmasını istiyorum. Bunu nasıl yaparım?


Linux'ta yeniyim - /dev/nullİş çalışır mı?
Ram Rachum

2
Peki o zaman indirmek için nokta nedir?
Anonim

1
@ İsimsiz Uzaktaki sunucuyu vurguladığımı varsayarım .. İçeriği umursamıyorsanız .. Muhtemelen apachebench (ab) kullanırım.
Tom O'Connor,

Yanıtlar:


83

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.


Bu, sayfayı kaydetmez, ancak bana e-posta gönderir. E-postaları devre dışı bırakmak da mümkün mü?
trante

32

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.

wgetYalnı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.


Kafam karıştı. --no-cacheman 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
Gaia

Sunucuya, müşterinizin dosyanın önbelleğe alınmış bir sürümünü istemediğini söylüyor. İstediğimiz kaynağın son sürümünü almak istiyoruz
drAlberT

17

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


1
Çok teşekkürler. Bu --delete-afterseçenek, yinelemeli olarak indirmek zorunda olduğunuz ancak gerçek içeriği silmek istediğiniz zaman yapılan seçenektir.
egelev

Benim için +1, komut sezgiseldir - bir bakışta, neler olacağını daha hızlı bir şekilde anlayabilirim-O /dev/null
fusion27

15

Konsolda da yazdırmak istiyorsanız, sonucu yapabilirsiniz:

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

1
Bu seçeneği en çok seviyorum. Ne alacağını görmeme izin ver ama kurtarmıyor. Anahtarlar özellikle qsessiz moddadır (ilerleme ve diğer bilgileri vermez) ve O-(alınan belgeyi konsola yazın).
Ahtapot

9

Başka bir alternatif, curlvarsayılan olarak uzak içeriği stdoutbir dosyaya kaydetmek yerine çıkartan gibi bir araç kullanmaktır .


4

"-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

3

Wget kullanarak bir web sitesini taramanız ve disk kaybını en aza indirmek istiyorsanız ...

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.htmlHer sayfada bulunması konusunda ısrar ediyor . Bu tür sayfalar her zaman mevcut olmayabilir ve wget daha önce gördüğü bağlantıları hatırlamaz.

Diske yazmadan tarama yapmak için, geldiğim en iyisi aşağıdaki gibidir.

 mkdir /dev/shm/1   
 cd /dev/shm/1
 wget --recursive --relative --no-parent ...

Dikkat -O fileseç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/*

2

Dosyayı indirdikten sonra silen --delete-after seçeneğini kullanın.

Düzenleme: Hata, ben zaten cevaplanmış olduğunu farkettim.


0

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.


Bu, spider'den bahseden diğer cevaba nasıl katkıda bulunur?
Ward
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.