day & night

Как качать с Rapidshare.com «free user», используя curl или wget
Дата обновления: , перейти к новому сообщению
#1
ЭЖД



*nix`оид
[SoftoRooMTeaM] Group Icon

Группа: Наши Люди
Сообщений: 11.935
Регистрация: 18.09.2004
Пользователь №: 1.679


Респектов: 789
-----XXXX-




ph34r.gif Как качать с Rapidshare.com «free user», используя curl или wget

Цитата | Quote
За последнее время рапида убрала с себя капчу, сделала не столь долгим ожидание между загрузками, в общем, всем своим видом показывает, что с ней очень приятно работать. А если это можно делать ещё и бесплатно… так почему же нет?!

Интерес в автоматизации некоторых процессов, например, автоматическое сохранение звуковых файлов произношения, стянутых с translate.google.com при заучивании новых слов; или же получение прямой ссылки с видео-хранилищ, для просмотре потом mplayer'ом на таблетке nokia N810; заставил поискать способы коммуникации с вебсерверами через консоль, по возможности, не прибегая к вмешательству пользователя, т.е. полной автоматизации. Самым популярным средством, пожалуй, является wget. Но используют его чаще всего для банальной скачки прямых линков на файлы. Это мы попробуем поправить этой статьёй. Но кроме wget так же есть и чуть менее известные программы, такие как например curl. Последний, скажем, отсутствует в дефолтовой установки линукса от широко известной в узких кругах Canonical Ltd.

Именно с curl и начнем. Всего пару слов, что бы показать на что он способен.

Примеры использования автоматизации скачивания можно найти на английских просторах всяких интернетов. Попробуем на их базе описать сам процесс.

Пусть первым будет:
Code
curl -s

Опция просто «затыкает» цюрл, что бы лишнего не болтал… Опция действительно полезная, если нет желания потом разбираться в горе статусной информации. Эта же опция в полной форме:
Code
curl --silent.

Отправить POST запрос на HTTP сервер можно с помощью:
Code
curl -d DATA_TO_SEND
curl --data DATA_TO_SEND

Пост используется браузером при отправки значений форм на HTML странице при нажатии пользователем кнопки «submit». И мы теперь сможем этим параметром сообщать серверу какую кнопку мы нажали, или что ввели в поле на странице и т.д.

Сразу для примера — способ с помощью curl получать прямой линк на рапиде:
Code
#!/bin/bash
while read urlline; do

pageurl=$(curl -s $urlline | grep "<form id=\"ff\" action=\"" | grep -o ‘http://[^"]*rar’)
fileurl=$(curl -s -d "dl.start=Free" "$pageurl" | grep "document.dlf.action=" | grep -o ‘http://[^"]*rar’ | head -n 1)
sleep 60
wget $fileurl

done < URLS.txt

Коротенько про этот bash скрипт — считывается построчно URLы из URLS.txt файла, в переменную pageurl вытягиваем линк на страницу с выбором premium/free user. В переменную fileurl кидается прямой линк на файл. Получаем его отсылая серверу, что мы желаем получать от жизни всё бесплатно, фильтруя grep'ом юрлы, а так как их может быть несколько — оставляем head'ом только первую строчку. Ждём 60 секунд и качаем файл. Вот такой вот скриптик.

А теперь банановый...

Попробуем это же всё изобразить с wget'ом.

» Скрипт в студию: «

Кидаем список линков в input.txt и запускаем скрипт — он нам сам сообщит, что он делает. Если файл не удалось записать — он отправляется в файл fail.txt. При проходе всего input.txt файл fail.txt переписывается обратно в инпут, а скаченные линки удаляются.

Источник_http://habrahabr.ru/
User is offline
Go topGo end
 

Ответов(1 - 1)
1.05.2009 - 11:39
#2
Ramz



профи!
*****

Группа: Пользователи
Сообщений: 625
Регистрация: 18.02.2007
Пользователь №: 337.767


Респектов: 123
-----X----


Предупреждений: 0


а Для тех кто в танке rolleyes.gif
User is offline
Go topGo end

Topic Options
Сейчас: 26.04.2024 - 14:49
Мобильная версия | Lite версия