Назад | Перейти на главную страницу

Загрузите файл из оболочки, когда требуется нажатие кнопки

У меня есть ссылка на файл, который я хотел бы скачать из оболочки. К сожалению, URL-адрес перенаправляет на страницу лицензионного соглашения на программное обеспечение, для которой необходимо нажать кнопку принятия. Это нормально, когда я использую стандартный браузер, но когда я нахожусь в оболочке, wget просто загружает html-страницу, а не сам файл. Какие варианты доступны для загрузки файла в оболочку, если сначала необходимо принять условия?

В частности, я смотрю на следующую страницу загрузки LSI:

http://www.lsi.com/Pages/user/eula.aspx?file=http%3a%2f%2fwww.lsi.com%2fdownloads%2fPublic%2fSATA%2fSATA%2520Common%2520Files%2f3DM2_CLI-Linux_10.2.1_9 .5.4.zip & Source = http% 3a% 2f% 2fwww.lsi.com% 2fdownloads

Я просмотрел исходный код на странице и нашел ссылку на следующее место, но при использовании wget также открывается страница eula.

http://www.lsi.com/downloads/Public/SATA/SATA%20Common%20Files/3DM2_CLI-Linux_10.2.1_9.5.4.zip

Пока что единственные варианты, которые я придумал, - это:

  1. Загрузите его на другой компьютер с браузером, а затем загрузите на сервер, на котором есть только оболочка. Медленно и болезненно.
  2. Установите что-нибудь вроде Lynx. Я не уверен, хорошо ли Lynx обрабатывает загрузки, и мне не нравится идея устанавливать дополнительное программное обеспечение на производственный сервер.
  3. Продолжайте анализировать код EULA, чтобы определить, как он предотвращает мою загрузку (при условии, что это javascript, а не на стороне сервера).

Должен быть способ попроще?

Для большинства веб-сайтов вы можете:

  • Начните загрузку в firefox на вашем ПК.
  • Во время загрузки щелкните правой кнопкой мыши и скопируйте URL-адрес загрузки. Отмените загрузку.
  • Используйте этот URL с wget.

Это работает на 95% веб-сайтов, которые используют подобные переадресации.

Однако этот сайт ведет себя странно:

  • Попробовал его на своем ПК, и он мгновенно загрузился с этого URL - только что принял их лицензионное соглашение с моего телефона в той же беспроводной сети.
  • Загрузка в wget с другого ПК в той же сети работала нормально.
  • Загрузив wget с удаленного сервера, я получил страницу EULA.

Поскольку я делал все это с разных устройств, это не файлы cookie или параметры публикации. Единственное, что у них общего, это то, что они находятся за одним NAT.

Таким образом, я могу только заключить, что они отслеживают IP-адреса, которые приняли лицензионное соглашение, и показывают страницу лицензионного соглашения только тем, кто еще не принял его. Чтобы загрузить его с wget - либо примите лицензионное соглашение на другом компьютере с того же общедоступного IP-адреса, либо позвоните в LSI и уволите их веб-дизайнеров!

Я обычно просто использую lynx для этого. Найдите минутку и ознакомьтесь с клавишами навигации. Процесс загрузки прост и позволяет вам выбрать место вывода ...

Однако в этом случае Пытался запустить загрузку через рысь, но не повезло.

Так что просто возьмите получившееся имя файла, 3DM2_CLI-Linux_10.2.1_9.5.4.zipи найдите альтернативный источник который воля разрешить вам использовать wget. Самый простой подход.

Взломать: Это специфическое решение для LSI. Просто добавьте source = 1 к URL-адресу. Так что ссылка

http://www.lsi.com/downloads/Public/SATA/SATA%20Common%20Files/3DM2_CLI-Linux_10.2.1_9.5.4.zip

изменится на:

http://www.lsi.com/downloads/Public/SATA/SATA%20Common%20Files/3DM2_CLI-Linux_10.2.1_9.5.4.zip?source=1

Тогда команда wget:

wget http://www.lsi.com/downloads/Public/SATA/SATA%20Common%20Files/3DM2_CLI-Linux_10.2.1_9.5.4.zip?source=1 -O 3DM2_CLI-Linux_10.2.1_9.5.4.zip

ПОЧЕМУ LSI !?

http://www.lsi.com/downloads/Public/SATA/SATA%20Common%20Files/3DM2_CLI-Linux_10.2.1_9.5.4.zip

Эта ссылка идет на нее из браузера без лицензионного соглашения, но она не работает для wget .. странно. Можете ли вы просто загрузить его на рабочий стол, а затем скопировать в свой Linux-сервер?