Как использовать wget для скачивания с хостинговых сайтов?

11

Wget - очень полезный инструмент для быстрой загрузки материалов в Интернете, но могу ли я использовать его для загрузки с сайтов хостинга, таких как FreakShare, IFile.it Depositfiles, Uploaded, Rapidshare? Если так, как я могу это сделать?

Zignd
источник
4
Разве большинство этих сайтов не используют javascript и другие барьеры для устранения ссылок непосредственно на файлы?
Тим
@ Тим, я думаю, ты прав, потому что невозможно получить прямую ссылку с этих сайтов.
Zignd
@swift Не могли бы вы перевести это на английский и опубликовать на pastebin или где-нибудь еще
Zignd

Ответы:

11

Этот тип сайта пытается затруднить использование графического веб-браузера, потому что если вы используете 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-адрес загружаемого файла.

На некоторых сайтах вам может понадобиться экспортировать файлы cookie веб-браузера и перейти --load-cookiesна wget; с этого момента использование wget начинает больше работать, чем загрузка вручную. Конечный метод, который может работать постоянно, но требует некоторого кодирования для каждого сайта, - это использовать среду автоматизации браузера, такую ​​как Selenium или Watir .

Смотрите также Автоматизация веб-запросов с помощью curl?

Жиль "ТАК - прекрати быть злым"
источник
Потрясающие! Ваш ответ помог мне написать это для ZippyshareLinks: stackoverflow.com/a/21100640/1533054
Sheharyar
7

Для Zippyshare:

Этот метод основан на ответе Жиля . Как он сказал, хитрость заключается в том, чтобы заставить сервер думать, что запрос делается из браузера, и чтобы это произошло, вам понадобится пара вещей:

  • Ссылка для скачивания (фактическая ссылка на файл)
  • Ссылка реферера (веб-страница с кнопкой загрузки)
  • Идентификатор сеанса Zippyshare (находится в файлах cookie)

Вот скриншот, объясняющий, где вы можете получить каждый предмет:

Скачать с Zippyshare

Теперь откройте свой терминал и используйте следующую команду (заменив необходимые элементы):

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

Sheharyar
источник
1
Я просто хотел бы добавить, что Sheharyar использует Firebug на этом скриншоте. Это для всех (включая меня), кто пытался сделать это в Инспекторе (что, к сожалению, невозможно).
синтаксическая ошибка
1

Я также хотел бы получить более совершенные ответы, я использовал следующий трюк для загрузки детского фильма для моего сына из 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 &

Я могу выключить компьютер сейчас :)

Сертак ТУЛУК
источник