1

Прежде всего, я просто не хочу менять имя выходного файла curl.

Отличным примером является http://www.getsoloapp.com/download.
Когда вы делаете:curl http://www.getsoloapp.com/download вы загружаете HTML.

Когда вы это сделаете (URL приходит из менеджера загрузок Firefox, это ссылка для скачивания):
curl http://www.getsoloapp.com/server/do_download
Вы скачиваете HTML:
<h2>No Direct Access Allowed. Please go to the downlo...

Так что это не так очевидно, у вас есть идеи, как извлечь URL или просто скачать файл? Я пробовал такие браузеры, как w3m, ссылки, curl, wget и т.д.

2 ответа2

0

Проблема здесь в том, что веб-сайт использует iframe, который вводится в страницу с помощью скрипта, чтобы скрыть ссылку для скачивания. Похоже, что iframe - это просто страница, на которую вы ссылались http://www.getsoloapp.com/server/do_download .

Я подозреваю, что сам сервер анализирует поле "referrer", и если реферер настроен правильно, он возвращает содержимое загрузки, как будто вы вставляете страницу do_download тогда все, что вы получаете, - это HTML-страница, указывающая вам перейти в другое место. Вероятно, это сделано для того, чтобы предотвратить прямые ссылки на скачивание и убедиться, что вы впервые увидели их сайт.

Что вам нужно сделать, это передать страницу реферера через curl:

curl -referrer http://www.getsoloapp.com/download http://www.getsoloapp.com/server/do_download

Я считаю, что это должно правильно загрузить программное обеспечение

0

Сайт делает проверку реферера. Это работает (как сегодня 2015-06-27):

curl --referer 'http://www.getsoloapp.com/download' 'http://www.getsoloapp.com/server/do_download' > solo_v1.2.2.zip

Обычно полезно посмотреть, что делает ваш браузер. Например, с Firefox вы можете получить каждый запрос как запрос curl в меню Сервис -> Веб-разработчик -> Сеть:

https://developer.mozilla.org/en-US/docs/Tools/Network_Monitor#Copy_as_cURL

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .