Sayfanın indirilmesini beklemenizi sağlayan yeri olan wget ile nasıl dosya indirilir?


32

Wget'ı kullanarak sourceforge'dan bir dosya indirmeye çalışıyorum, ancak hepimizin bildiği gibi indirme düğmesine tıklayıp otomatik olarak indirmesini beklemeliyiz. wget kullanarak bu tür dosyaları nasıl indirirsiniz?

Bunu indirmeye çalışıyorum: http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.8.1/bitcoin-0.8.1-linux.tar.gz/download

Ancak bu URL bağlantısına bir wget yapmak, bana dosya tarayıcı üzerinden otomatik olarak yüklendiği için dosyayı almayacaktır.


3
Web tarayıcısındaki o sayfaya gitmek bir Doğrudan Bağlantı da listelemelidir - wget ile bununla kullanabilirsiniz?
BriGuy

Eğer dosyanın gerçek adını korumak istiyorsanız ("indirme" yerine), sonra sadece olarak çağırmanız gerekirwget --trust-server-names URL
Adam Katz

Yanıtlar:


5

wgetSiz ve sourceforge arasında hangi işletim sistemi sürümünün veya herhangi bir proxy sürümünün bulunduğundan emin değilim, ancak wget"/ indirme" yi kaldırdığımda ve dosya uzantısında bıraktığımda dosyayı indirdim.

Tüm oturumu yayınlamak ya da yapıştırmak istemiyorum ancak aktarım başlamadan önce 302 ve 200 durum kodunu aldım. Denediğinde ne olacak wget?

Resolving downloads.sourceforge.net... 216.34.181.59
Connecting to downloads.sourceforge.net|216.34.181.59|:80... connected.
HTTP request sent, awaiting response... 302 Found

[snipped for brevity]

HTTP request sent, awaiting response... 200 OK
Length: 13432789 (13M) [application/x-gzip]
Saving to: `download'

Ayrıca not edin: bazen “indirme” sayfası aynaların bir listesi ve belirli bir gecikme olduğunda size bunlardan birini veren bir komut dosyasıdır. SourceForge 10 yıl önce yaptı.
can-ned_food 20

47

Bunun curlyerine bunu yapmayı öneririm wget. Bu anahtarlarını kullanarak yönlendirmeyi takip edebilir -L, -Jve -O.

curl -O -J -L http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.8.1/bitcoin-0.8.1-linux.tar.gz/download

tanımları değiştir

-O/--remote-name
  Write output to a local file named like the remote file we get. 
  (Only the file part of the remote  file  is  used, the path is cut off.)

-L/--location
  (HTTP/HTTPS)  If  the  server  reports that the requested page has moved 
  to a different location (indicated with a Location: header and a 3XX 
  response code), this option will make curl redo the request on the new 
  place.  If  used together  with  -i/--include  or -I/--head, headers from 
  all requested pages will be shown. When authentication is used, curl only 
  sends its credentials to the initial host. If a redirect takes curl to a 
  different host, it  won't be  able  to  intercept  the  user+password. 
  See also --location-trusted on how to change this. You can limit the
  amount of redirects to follow by using the --max-redirs option.

-J/--remote-header-name
  (HTTP) This option tells the -O/--remote-name option to  use  the  
  server-specified  Content-Disposition  filename instead of extracting a 
  filename from the URL.

Daha fazla ayrıntı için kıvırmak adam sayfasına bakın.


2
Curl kullanmanıza gerek yok, wgetyönlendirmeleri takip edebilirsiniz, ancak güvenlik nedenlerinden dolayı elbette 0 --max-redirectolan varsayılan değeri artırmadıkça bunu yapmaz.
Anthon

wget1.19.2'nin varsayılan değeri --max-redirect=20, çoğu kullanım için yeterince iyi olması gereken. Bunun ne zaman değiştiğinden emin değilim… ya da neden güvenlik için gerekliydi (kaynak gösterilmeye ihtiyaç duyuldu!), Fakat benim tahminim şu anki tercih edilen çözümün yönlendirmeleri takip etmek olduğu ve yerine --trust-server-names"yerine, yeniden yönlendirme hedefi tarafından sağlanan adı korumasını gerektirdiği " "veya" index.html? blah = barg "dosyasını veya verilen URL ne kullanırsa kullanın.
Adam Katz

Herhangi birine yardım etmesi durumunda, doğru anahtarları nasıl hatırladığımı işte. Jennifer Lopez'i düşünün. JLO. curl -JLO http://www.example.com/file.ext
Carl

15

Gelen wgetsen kullanabilir --content-dispositionkullanımı "Content-Disposition" başlıkları indirilmiş bir dosyanın adı ne olması gerektiğini anlatmak için bazı dosya indirirken CGI programları için yararlıdır seçeneği.

Örnek olarak:

wget --user-agent=Mozilla --content-disposition -E -c http://example.com/

Daha karmaşık çözümler için (yetkilendirme gerekli), --load-cookies fileoturumunuzu simüle etmek için çerez dosyasını ( ) kullanın.

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.