Tüm resimleri bir URL'den tek bir klasöre indirmek için Wget'i nasıl kullanırım?


133

Bir web sitesinden tüm görüntüleri indirmek için wget kullanıyorum ve iyi çalışıyor ancak sitenin orijinal hiyerarşisini tüm alt klasörlerle birlikte saklıyor ve bu nedenle görüntüler noktalı. Tüm görüntüleri tek bir klasöre indirmenin bir yolu var mı? Şu anda kullandığım sözdizimi:

wget -r -A jpeg,jpg,bmp,gif,png http://www.somedomain.com

Yanıtlar:


194

Bunu dene:

wget -nd -r -P /save/location -A jpeg,jpg,bmp,gif,png http://www.somedomain.com

İşte biraz daha bilgi:

-ndbir dizin hiyerarşisinin oluşturulmasını engeller (yani dizin yok ).

-ryinelemeli almayı etkinleştirir. Daha fazla bilgi için Yinelemeli İndirme bölümüne bakın .

-P tüm dosya ve dizinlerin kaydedildiği dizin önekini ayarlar.

-Ayalnızca belirli dosya türlerini almak için bir beyaz liste ayarlar. Dizeler ve kalıplar kabul edilir ve her ikisi de virgülle ayrılmış bir listede kullanılabilir (yukarıda görüldüğü gibi). Daha fazla bilgi için Dosya Türlerine bakın .


5
Bu aslında benim için işe yaramadı. Kaydetme konumum "" idi. ve tüm site hiyerarşisini orada kopyaladı.
Buttle Butkus

2
@ButtleButkus Kabul -Aseçeneği ile biraz daha karışıklığa ihtiyacınız var gibi görünüyor , dosya türleri hakkında Wget belgelerine bakın . Ayrıca, mevcut dizine indiriyorsanız, dizin öneki -Pseçeneğini kaldırabilirsiniz . Yalnızca jpg'ler gibi tek bir dosya türü indiriyorsanız, gibi bir şey kullanın wget -r -A.jpg http://www.domain.com. Wget belgelerinin sağladığı gelişmiş örneklere bakın .
Jon

-nd Yukarıdakilere eklemek , çalışmasını sağlar. Ayrıca-A "*foo*" -A "*bar*"
Yablargo

1
Kullanmayı unutmayın --level=infveya --level=9999999999çünkü wgetmuhtemelen maksimum yineleme derinliği varsayılan düzeye nedeniyle işi sabote etmektir 5.
user619271

127
wget -nd -r -l 2 -A jpg,jpeg,png,gif http://t.co
  • -nd: dizin yok (tüm dosyaları geçerli dizine kaydedin; -P directoryhedef dizini değiştirir)
  • -r -l 2: yinelemeli düzey 2
  • -A: kabul edilen uzantılar
wget -nd -H -p -A jpg,jpeg,png,gif -e robots=off example.tumblr.com/page/{1..2}
  • -H: span hosts (wget varsayılan olarak farklı etki alanlarından veya alt etki alanlarından dosya indirmez)
  • -p: sayfa gereksinimleri (her sayfadaki resimler gibi kaynakları içerir)
  • -e robots=off: komutu dosyanın bir robotos=offparçasıymış gibi yürütün .wgetrc. Bu, robot dışlamayı kapatır, bu da robots.txt dosyasını ve robot meta etiketlerini görmezden geldiğiniz anlamına gelir (bunun getirdiği sonuçları bilmelisiniz, dikkatli olun).

Örnek: Örnek .jpgbir dizin listesindeki tüm dosyaları alın :

$ wget -nd -r -l 1 -A jpg http://example.com/listing/


9

Bunu dene:

wget -nd -r -P /save/location/ -A jpeg,jpg,bmp,gif,png http://www.domain.com

ve tüm ekstra bilgileri silene kadar bekleyin


Benim için çalışmıyor. wget -nd -r -P /Users/duraiamuthan/Downloads/images/ -A jpeg,jpg,bmp,gif,png http://www.forbes.com/profile/mark-zuckerberg/
Vivo

5

Man sayfasına göre -P bayrağı:

-P öneki --directory-önek = önek Dizin önekini öneke ayarlayın. Dizin öneki, diğer tüm dosyaların ve alt dizinlerin kaydedileceği dizindir, yani geri alma ağacının en üstünde. Varsayılan değer. (mevcut dizin).

Bu, yalnızca hedefi, ancak dizin ağacının nereye kaydedileceğini belirlediği anlamına gelir. Ağacı tek bir dizinde düzleştirmez . Daha önce de belirtildiği gibi -nd bayrağı bunu yapar.

@Jon gelecekte bayrağın ne yaptığını açıklamak faydalı olacaktır, böylece bir şeyin nasıl çalıştığını anlayabiliriz.


2

Önerilen çözümler, görüntüleri indirmek için mükemmeldir ve eğer kullandığınız dizindeki tüm dosyaları kaydetmeniz yeterliyse. Ancak, sitenin tüm hiyerarşik ağacını yeniden oluşturmadan tüm resimleri belirli bir dizine kaydetmek istiyorsanız, Jon tarafından önerilen satıra "cut-dirs" eklemeyi deneyin.

wget -r -P /save/location -A jpeg,jpg,bmp,gif,png http://www.boia.de --cut-dirs=1 --cut-dirs=2 --cut-dirs=3

bu durumda cut-dirs, wget'in web sitesi hiyerarşik ağacında 3. derinlik seviyesine kadar alt dizinler oluşturmasını önleyecek ve tüm dosyaları belirttiğiniz dizine kaydedecektir. derin bir yapıya sahip sitelerle uğraşıyor.


-7

wget yardımcı programı, HTTP, HTTPS ve FTP gibi yaygın olarak kullanılan protokolleri kullanarak dosyaları World Wide Web'den (WWW) alır. Wget yardımcı programı ücretsiz olarak kullanılabilir bir pakettir ve lisans GNU GPL Lisansı altındadır. Bu yardımcı program, Windows ve MAC OS dahil herhangi bir Unix benzeri İşletim sistemini yükleyebilir. Etkileşimli olmayan bir komut satırı aracıdır. Wget'in temel özelliği sağlamlığıdır. Yavaş veya dengesiz ağ bağlantılarında çalışacak şekilde tasarlanmıştır. Wget, ağ sorunu olması durumunda indirmeyi kaldığı yerden otomatik olarak başlatır. Ayrıca dosyayı yinelemeli olarak indirir. Dosya tamamen alınana kadar denemeye devam edecektir.

Linux makinesine wget yükleyin sudo apt-get install wget

Dosyaları indirmek istediğiniz bir klasör oluşturun. sudo mkdir myimages cd myimages

Web sayfasına sağ tıklayın ve örneğin görsel konumu istiyorsanız görsele sağ tıklayın ve görsel konumunu kopyalayın. Birden fazla resim varsa, aşağıdakileri izleyin:

Web'den tek seferde indirilecek 20 görüntü varsa, aralık 0 ile 19 arasında başlar.

wget http://joindiaspora.com/img {0..19} .jpg


2
Cevabınız wget'in ne olduğunu ve sıralı olarak numaralandırılmış görüntüleri indirmek için nasıl kullanılacağını açıklıyor ... ikisi de orijinal soruyla ilgili değil.
Alastair
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.