Bir sonraki makalede Wget'e bir göz atacağız. GNU Wget'in bir ücretsiz araç içeriğin web sunucularından indirilmesine izin veren basit ve hızlı bir şekilde. Adı World Wide Web'den (w) ve get kelimesi (İngilizce almak). Bu isim şu anlama geliyor: WWW'den al.
Bugün dosyaları çok verimli bir şekilde indirmek için düzinelerce uygulama var. Çoğu web ve masaüstü arayüzlerine dayalıdır ve tüm işletim sistemleri için geliştirilmiştir. Ancak Gnu / Linux'ta (Windows için de bir sürüm var) orada güçlü indirme yöneticisi wget dosyalarının. Var olan en güçlü indirici olarak kabul edilir. Http, https ve gibi protokolleri destekler. ftp.
Wget ile dosyaları indirin
Bir dosya indirin
Bu aracı kullanmanın en basit yolu, dosyayı gösteren Ne istiyoruz:
wget http://sitioweb.com/programa.tar.gz
Farklı protokoller kullanarak indirin
İyi bir indirme yöneticisi olarak mümkündür bir seferde birden fazla indirme isteğinde bulunun. Aynı sırayla farklı protokoller bile kullanabiliriz:
wget http://sitioweb.com/programa.tar.gz ftp://otrositio.com/descargas/videos/archivo-video.mpg
Uzantıya göre indir
Birden çok dosya indirmenin başka bir yolu aynı uzantıyı kullanan dosyalar, joker karakter yıldız işaretini kullanacaktır:
wget<code class="language-bash" data-lang="bash">-r -A.pdf</code>http://sitioweb.com/*.pdf
Bu komut, bazı sunuculara erişimi engellediğinden her zaman çalışmaz. wget.
Bir dosya listesi indirin
İstediğimiz şey bulduğumuz dosyaları indirmekse, yalnızca onların Bir dosyadaki URL. Adlı bir liste oluşturacağız files.txt ve listenin adını komuta göstereceğiz. Gerekli her satıra yalnızca bir url yerleştirin files.txt içinde.
Oluşturulan listeyi indirmek için kullanacağımız ve .txt dosyalarına kaydettiğimiz komut şu şekilde olacaktır:
wget -i archivos.txt
İndirmeyi yeniden başlatın
Herhangi bir nedenle indirme işlemi kesintiye uğradıysa, indirmeye kaldığı yerden devam et kullanmak seçenek c wget komutuyla:
wget -i -c archivos.txt
İndirmeyle ilgili bir günlük ekleyin
İndirme ile ilgili bir günlük almak istiyorsak, herhangi bir olayı kontrol etmek üzerine eklememiz gerekecek -o seçenek aşağıda gösterildiği gibi:
wget -o reporte.txt http://ejemplo.com/programa.tar.gz
İndirme bant genişliğini sınırlayın
Çok uzun indirmelerde indirme bant genişliğini sınırla. Bununla indirmenin, indirme süresi boyunca tüm bant genişliğini kullanmasını önleyeceğiz:
wget -o /reporte.log --limit-rate=50k ftp://ftp.centos.org/download/centos5-dvd.iso
Kullanıcı adı ve şifre ile indirin
Kullanıcı adı / şifrenin gerekli olduğu bir siteden indirmek istiyorsak, sadece şu seçenekleri kullanmamız gerekecek:
wget --http-user=admin --http-password=12345 http://ejemplo.com/archivo.mp3
İndirme denemeleri
Varsayılan, bu program bağlantı kurmak için 20 deneme yapar ve indirmeyi başlatın, çok doygun sitelerde 20 denemede bile elde edilememesi mümkündür. İle seçenek t daha fazla denemeye yükselir.
wget -t 50 http://ejemplo.com/pelicula.mpg
Wget ile bir web sitesi indirin
Wget sadece dosya indirmeleriyle sınırlı değildirTam bir sayfayı indirebileceğiz. Sadece şöyle bir şey yazmamız gerekecek:
wget www.ejemplo.com
Bir web sitesini ve ekstra unsurlarını indirin
Birlikte seçenek p biz de indireceğiz sayfada gerekli ekstra unsurlar stil sayfaları, satır içi resimler vb.
Eklersek seçenek r se 5 düzeye kadar yinelemeli olarak indirilecek siteden:
wget -r www.ejemplo.com -o reporte.log
Bağlantıları yerel ağa dönüştür
Varsayılan olarak, site içindeki bağlantılar tüm etki alanının adresini işaret eder. Siteyi yinelemeli olarak indirir ve sonra çevrimdışı çalışırsak bağlantıları dönüştür seçeneği onları dönüştürecek yerel bağlantılar:
wget --convert-links -r http://www.sitio.com/
Sitenin tam bir kopyasını edinin
Bir sitenin eksiksiz bir kopyasını alma olanağına sahip olacağız. –Mirror seçeneği kullanmakla aynıdır seçenekler -r -l inf -N bu sonsuz düzeyde özyinelemeyi ve indirilen her dosyanın orijinal zaman damgasını almayı gösterir.
wget --mirror http://www.sitio.com/
Uzantıları dönüştürün
Sitenin tamamını çevrimdışı görüntülemek için indirirseniz, .cgi, .asp veya .php gibi uzantılar nedeniyle indirilen birkaç dosya açılmayabilir. Daha sonra ile belirtmek mümkündür. –Html-uzantı seçeneği Tüm dosyalar bir .html uzantısına dönüştürülür.
wget --mirror --convert-links --html-extension http://www.ejemplo.com
Bunlar sadece genel yönergelerdir Wget ile yapabileceğinizden daha fazla. Kim isterse danışabilir çevrimiçi kılavuz bu harika indirme yöneticisinin bize sunduğu tüm olasılıklara başvurmak için.
"Uzantıyla indir" konusuna gelince, okumayı bıraktım. Bilmediklerinizi indiremezsiniz. İstenen dizin dosyaların listelenmesine izin vermedikçe ve bir dizin içermedikçe (ve her ikisi de aynı anda gerçekleşmelidir), söyledikleriniz yapılamaz. Ne seviye.
Merhaba Rubén, cehalet biraz cüretkar.
Yorum yaptığınız şey, google'a basit bir komutla yapılabilir:
dosya türü:pdf sitesi:ubunlog.com
Bu örnekte bu blogda pdf yoktur, ancak en sondaki alanı tercih ettiğiniz web olarak değiştirin ve bir web türünün tüm dosyalarını görmenin ne kadar kolay olduğunu göreceksiniz.
İyi günler dilerim.
Ancak wget, bir url'de bulunan pdf'leri bulmak için Google'a bağlanmaz. Rubén Cardenal'ın dediği gibi, web dizini açık olmalı ve mod_autoindex veya benzeri tarafından oluşturulmuş bir dizin sayfası olmalıdır.
"Bazı sunucular wget'e erişimi engellemiş olabileceğinden, bu komut her zaman çalışmaz."
Bu makaleye yerleştirilen bu değişiklik, çünkü buna katılmıyorum (teknik olarak bazı web aracılarını http başlık istekleri için engellemek ve 403 "izin verilmiyor" mesajı döndürmek mümkün olsa da) ve nedenini açıklayacağım:
Tüm Apache web sunucuları (ve ben sunucuların önemli bir yüzdesinden bahsediyorum) varsayılan olarak globbing'e izin verir (mükemmel Wikipedia makalesi, okuyun: https://es.wikipedia.org/wiki/Glob_(inform%C3%A1tica) .
Bu, pratikte, mr. Rubén (ve haklı), "index.php" veya "index.html" (veya kısaca "index.html" olarak adlandırılan) ADIMLI DOSYA YOKSA, sunucu sessizce dosya ve dizinlerin bir listesini (tabii ki formda) döndürecektir. her dosya için web bağlantısı olarak bilgileri içeren bir html sayfası). ÇOĞU WEB SUNUCUSU BU ÖZELLİĞİ GÜVENLİK NEDENLERİ İÇİN .htacces DOSYASI (tam anlamıyla Apache2) YOLUYLA DEVRE DIŞI BIRAKIR.
İşte wget'in çok yönlülüğü (hikayesine bakın, yine en çok bildiğiniz Wikipedia'da: https://es.wikipedia.org/wiki/GNU_Wget ) bu tür bilgileri analiz etmek veya "ayrıştırmak" ve yalnızca istediğimiz uzantıları çıkarmak.
Şimdi, bunun işe yaramaması durumunda, şu ya da bu nedenle, diğer gelişmiş wget işlevlerini deneyebiliriz, doğrudan İngilizce alıntı yapıyorum:
Tüm GIF'leri bir HTTP sunucusundaki bir dizinden indirmek istiyorsunuz. 'Wget'ı denedin http://www.example.com/dir/*.gif’, ancak bu işe yaramadı çünkü HTTP alımı GLOBBING'i desteklemiyor (büyük harfleri koydum). Bu durumda şunu kullanın:
wget -r -l1 - ebeveyn yok -A.gif http://www.example.com/dir/
Daha ayrıntılı, ancak etki aynı. '-r -l1', maksimum 1 derinliği ile özyinelemeli olarak geri alma anlamına gelir (Özyinelemeli İndirme'ye bakın). '-no-parent', ana dizine yapılan başvuruların göz ardı edildiği anlamına gelir (bkz. Dizin Tabanlı Sınırlar) ve '-A. gif 'yalnızca GIF dosyalarını indirmek anlamına gelir. '-A «* .gif»' de işe yarardı.
BU SON ŞEKİLDE ÇALIŞIRSANIZ, wget bizim için çalıştığımız varsayılan klasörde istenen web adresi ile bir klasör oluşturacak ve gerekirse alt dizinler oluşturacak ve oraya, örneğin bizim kullandığımız .gif resimlerini yerleştirecektir. istek.
--------
ANCAK, yalnızca belirli dosya türlerini (örneğin * .jpg) elde etmek hala mümkün değilse, bir html sayfasının tüm dahili öğelerini (görüntüler, sesler, css, vb.) html sayfasının kendisiyle birlikte ("–sayfa-gereksinimleri" kısaltılabilir "-p" olabilir) ve bu, "mhtml" gibi bir şeyi indirmeye eşdeğerdir https://tools.ietf.org/html/rfc2557
Umarım bu bilgiler sizin için yararlıdır.
Notlar için teşekkürler. Salu2.
Sanırım bir hata var, ilk iki satır aynı komuta sahip.
Çok teşekkür ederim, çok iyi öğretici!