wget — очень полезный инструмент для быстрой загрузки материалов из интернета, но могу ли я использовать его для загрузки с хостингов, таких как FreakShare, IFile.it Depositfiles, Uploaded, Rapidshare? Если да, то как это сделать?
решение1
Подобные сайты пытаются усложнить задачу отказа от использования графического веб-браузера, поскольку при использовании wget вы пропустите всю эту рекламу, которая оплачивает пропускную способность.
Некоторые сайты не выполняют расширенные проверки и их можно легко обмануть: скажите wget сделать вид, чтоэто действительно Mozillaи что этос сайта загрузки.
wget --user-agent='Mozilla/5.0 (Windows NT 6.0) Gecko/20100101 Firefox/14.0.1' \
--referer=http://downloadsite.example.com/download-page-url
http://downloadsite.example.com/download-page-url/filename.ext`
Большинство сайтов, которые выполняют проверку, позволяют вам обойтись без них --user-agent=Mozilla
и --referer
указать URL-адрес загружаемого вами файла.
С некоторыми сайтами вам может потребоваться экспортировать куки-файлы веб-браузера и передать их --load-cookies
в wget; на этом этапе использование wget становится более трудоемким, чем ручная загрузка. Окончательный метод, который может работать все время, но требует некоторого кодирования для каждого сайта, заключается в использовании фреймворка автоматизации браузера, такого какСеленилиВатир.
Смотрите такжеАвтоматизируете веб-запросы с помощью curl?
решение2
Для Zippyshare:
Этот метод строится наответ Жиля. Как он сказал, трюк в том, чтобы заставить сервер думать, что запрос делается из браузера, и чтобы это произошло, вам нужно несколько вещей:
- Ссылка для скачивания (фактическая ссылка на файл)
- Ссылка-реферер (веб-страница с кнопкой загрузки)
- Идентификатор сеанса Zippyshare (найден в файлах cookie)
Вот скриншот, поясняющий, где можно получить каждый предмет:
Теперь откройте терминал и используйте следующую команду (заменив необходимые элементы):
wget <download_link> \
--referer='<referrer>' \
--cookies=off --header "Cookie: JSESSIONID=<session_id>" \
--user-agent='Mozilla/5.0 (Windows NT 6.0) Gecko/20100101 Firefox/14.0.1'
Пример:
wget http://www16.zippyshare.com/d/29887835/8895183/hello.txt \
--referer='http://www16.zippyshare.com/v/29887835/file.html' \
--cookies=off --header "Cookie: JSESSIONID=26458C0893BF69F88EB5743D74FE0F8C" \
--user-agent='Mozilla/5.0 (Windows NT 6.0) Gecko/20100101 Firefox/14.0.1'
Примечание:В команде это на самом деле referer
не такreferrer
решение3
Я также хотел бы получить более точные ответы. Я использовал следующий трюк для загрузки детского фильма для моего сына с Turbobit:
Вместо SESSION_ID из ответа выше вам нужно найти «compid» на вкладке cookie FIREBUG:
После этого команда для моей встроенной системы Debian стала такой простой:
wget --referer='http://http://turbobit.net/download/free/yilmacr4e351' --cookies=off --header "Cookie: compid=c9255510c34624435292d8a0e7e405be66aa01f9%7ED01343F87AB53A2C38D957A564DA1D55" --user-agent='Mozilla/5.0 (Windows NT 6.0) Gecko/20100101 Firefox/14.0.1' http://turbobit.net/download/redirect/B3EDACDA9B899937A149D5AAB6662327/yilmacr4e351/Ters.Yuz.2015.1080P.WEBDL.TR.EN.mkv &
Теперь я могу выключить компьютер :)