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

Это - обычно хорошая практика для добавления некоторых гарантий для комнаты, которая обычно достигается путем искажения. В пользовательских средах Вы будете часто видеть многие из этих мер защиты на месте.

Для практика сценариев оболочки для одного часто полезно отключить эти гарантии как, по-видимому, они знают то, что они делают. Это, как упомянуто, выполняется путем снабжения предисловием команды с a \.

Вопреки предложению @Sorpigal я определенно отговорил бы от сбрасывания псевдонимов, чтобы сбои сценария, чтобы дать пользователю не поддерживают свои гарантии. Далее, использование полного пути также неблагоразумно, как комната может быть во вспомогательном пути по причине - т.е. комната GNU по сравнению с комнатой BSD. Переопределять его со строгим путем означало бы победить цель наличия ПУТЕЙ, а именно, чтобы масштабировать и обработать много архитектуры, сред и пользователей.

34
01.05.2013, 21:46
3 ответа

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

Я не хочу лавинно рассылать сообщение или pastebin моя вся сессия, но я получил 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'
6
27.01.2020, 19:36

Я предложил бы использовать 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.

Дополнительную информацию см. в вихревой странице справочника.

49
27.01.2020, 19:36
  • 1
    Никакая потребность использовать завихрение, wget может следовать за перенаправлениями, но это не делает так, если Вы не увеличиваетесь --max-redirect от значения по умолчанию, которое из соображений безопасности является, конечно, 0. –  Anthon 01.03.2015, 15:57
  • 2
    wget 1.19.2's значение по умолчанию --max-redirect=20 который должен быть достаточно хорошим для большей части использования. Я не уверен, когда это изменило … или почему это было необходимо для безопасности (необходима цитата!), но мое предположение - то, что текущее предпочтительное решение состояло в том, чтобы следовать за перенаправлениями и вместо этого потребовать --trust-server-names сохранить имя, обеспеченное целью перенаправления, а не "загрузкой" или "index.html? blah=barg" или безотносительно обеспеченного использования URL. –  Adam Katz 12.01.2018, 18:49

Из глоссария в /usr/share/doc/man-db/man-db-manual.txt (источник: manual/glossary.me ):

cat page
Отформатированная страница вручную, предназначенная для просмотра на терминале типа vt100.

страница бродячих кошек
Страница «cat», которая не имеет относительную страницу «manual» в системе, т.е. была предоставлена только страница «cat» или страница «manual» была удалена после была создана страница кошек.
-121--15750-

Информация о O _ NOFOLLOW приведена на странице info find :

9,2,1,1 O_NOFOLLOW

..................

Если система поддерживает флаг O_NOFOLLOW (1) к системе open (2) ' вызов, find 'использует его при безопасном изменении каталога. Цель сначала открывается каталог, а затем find 'changes working directory с системным вызовом fchdir () '. Это гарантирует, что символьные ссылки не соблюдается, предотвращая тип атаки на состояние расы, при котором используется выполнен из символических ссылок.

...

Из исходного дерева CBO появляется только в файле parser.c :

 printf("CBO(level=%d) ", (int)(options.optimisation_level)); 

, указывающем, что это оптимизация на основе затрат (мое лучшее предположение).

D _ TYPE происходит в нескольких местах в исходном дереве и, похоже, связано с типом записи каталога

$ grep 'D_TYPE' */**

Выходы:

find/parser.c:#if defined USE_STRUCT_DIRENT_D_TYPE && defined HAVE_STRUCT_DIRENT_D_TYPE
lib/savedirinfo.c:#if defined HAVE_STRUCT_DIRENT_D_TYPE && defined USE_STRUCT_DIRENT_D_TYPE

и некоторыми другими записями. Источник можно найти здесь .

-121--49618-

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

В примере

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

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

16
27.01.2020, 19:36

Теги

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