Как загружать файлы с помощью wget, где страница заставляет вас ждать загрузки?

Я пытаюсь загрузить файл из sourceforge с помощью wget, но, как мы все знаем, нам нужно нажать кнопку загрузки, а затем дождаться его автоматической загрузки. как вы загружаете этот тип файла с помощью wget?

Я пытаюсь загрузить это:

26 голосов | спросил Patoshi パトシ 1 Maypm13 2013, 22:46:11

3 ответа


5

Я не уверен, какая версия wget или ОС, и любой прокси существует между вами и sourceforge, но wget загрузил файл, когда я удалил «/download» и оставил его в расширении файла.

Я не хочу заливать почту или пастебину всю свою сессию, но до того, как передача началась, я получил коды кода 302, а затем 200. Что происходит, когда вы пытаетесь использовать 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'
ответил Karen3819x4 1 Maypm13 2013, 23:06:17
40

Я бы предложил использовать curl для этого вместо wget. Он может следовать перенаправлению с помощью переключателей -L, -J и -O.

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

определения переключателей

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

Подробнее см. страницу скручивания .

ответил slm 1 Maypm13 2013, 22:52:07
12

В wget вы можете использовать --content-disposition, который полезен для некоторых загружающих файлы программ CGI, которые используют заголовки Content-Disposition для описания того, что должно быть именем загруженного файла.

В примере:

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

Для более сложных решений (например, для авторизации) используйте файл cookie (--load-cookies file) для имитации сеанса.

ответил kenorb 18 FebruaryEurope/MoscowbWed, 18 Feb 2015 01:15:30 +0300000000amWed, 18 Feb 2015 01:15:30 +030015 2015, 01:15:30

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132