Переход к предыдущей публикации Использование nice, renice, kill, killall для манипулирования процессами во FreeBSD EACCELERATOR hit и httpd-error.log Переход к следущей публикации
 
Я хочу добавить Daemony`s Live RSS ленту в Google Reader Я хочу добавить Daemony`s Live RSS ленту в Яндекс.Лента Я хочу получать RSS ленту Daemony`s Live Blog по электронной почте Я хочу добавить Daemony`s Live RSS ленту в My Yahoo Я хочу добавить Daemony`s Live RSS ленту в My MSN

 

Добавить комментарий

Wget и cookies. Закачка в консоли с файлообменников.

Wget Download Оговорюсь сразу: в этой статье не написано о том, как качать с рапиды, файлфектори и т.д. и т.п. нахаляву. В данном случае рассматривается вариант закачек с файлообменных ресурсов только с использованием премиум-аккаунтов.

Итак, когда-то почти год назад, моя ненаглядная возжелала получить видеоуроки по… кройке и шитью. ;) Она нашла их на одном форуме, где были выложены ссылки, а сами файлы были залиты на rapidshare.com. Ну возжелала значит нужно качать. А качать много, больше трех гигабайт. Ну, надеюсь все знают, что такое файлообменник и как с него обычно качаешь. Платишь деньги за премиум доступ - качаешь без гемороя. Не платишь - получаешь лимиты в виде задержек между скачиваниями одного файла, закачка в один поток и только одного файла одновременно и т.д. Качать три гига на бесплатном аккаунте можно было долго и потому было решено купить премиум-аккаунт.

С этим проблем не возникло. Благо в Сети их сейчас продают “на каждом углу”… Ссылки на архивы собраны в текстовый файл, браузер авторизовался на rapidshare.com и Рапида готова отдавать файлы без всяких глупостей. Закладывай список ссылок в менеджер закачек и качай. Но вот проблемка. С домашнего подключения качать три гига немного будет накладно. Безлимиткой пока не обзавелся. Да и дома постоянно работающий компьютер уже кое-кому надоел. ;) Закачку можно оставить на сервере приятеля, у которого имеется канал в Сеть, хоть и не очень “толстый” зато безлимитный и бесплатный. После закачки можно будет прийти с винтом и слить файлы… И самое основное - будущий сервер “качальщик” запущен на FreeBSD. Вот здесь нам и поможет wget - *nix’овый консольный менеджер закачек.

Wget, пожалуй, наиболее известный и удобный консольный “качальщик”. Он умеет очень много для того, чтобы полностью решить вопрос с автоматизацией закачки любых объемов. Программа умеет работать в фоновом режиме, поддерживать докачку, работать через прокси… Да ну мало ли. Из всего многообразия настроек, также следует упомянуть возможность ограничения скорости закачки. Это для нас очень актуально.

Немаловажен еще и тот факт, что справка по wget появляется у Вас на русском языке если у Вас русифицированая консоль.

Вот вывод команды wget –help

$ wget -h
GNU Wget 1.11, программа для загрузки файлов из сети в автономном режиме.
Использование: wget [ОПЦИЯ]... [URL]...

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

Запуск:
  -V,  --version           вывод версии Wget и выход.
  -h,  --help              вывод этой справки.
  -b,  --background        после запуска перейти в фоновый режим.
  -e,  --execute=КОМАНДА   выполнить команду в стиле `.wgetrc'.

Журналирование и входной файл:
  -o,  --output-file=ФАЙЛ    записывать сообщения в ФАЙЛ.
  -a,  --append-output=ФАЙЛ  дописывать сообщения в конец ФАЙЛА.
  -d,  --debug               вывод большого количества отладочной информации.
  -q,  --quiet               молча (без выходных данных).
  -v,  --verbose             подробный вывод (по умолчанию).
  -nv, --no-verbose          отключение подробного режима, но не полностью.
  -i,  --input-file=ФАЙЛ     загрузка URL'ов, найденных в ФАЙЛЕ.
  -F,  --force-html          считать, что входной файл - HTML.
  -B,  --base=URL            добавление URL в начало относительных ссылок в файле -F -i.

Загрузка:
  -t,  --tries=ЧИСЛО             установить ЧИСЛО повторных попыток (0 без ограничения).
       --retry-connrefused       повторять, даже если в подключении отказано.
  -O,  --output-document=ФАЙЛ    записывать документы в ФАЙЛ.
  -nc, --no-clobber              пропускать загрузки, которые приведут к
                                 загрузке уже существующих файлов.
  -c,  --continue                возобновить загрузку частично загруженного файла.
       --progress=ТИП            выбрать тип индикатора выполнения.
  -N,  --timestamping            не загружать повторно файлы, только если они
                                 не новее, чем локальные.
  -S,  --server-response         вывод ответа сервера.
       --spider                  ничего не загружать.
  -T,  --timeout=СЕКУНДЫ         установка значений всех тайм-аутов в СЕКУНДЫ.
       --dns-timeout=СЕК         установка тайм-аута поиска в DNS в СЕК.
       --connect-timeout=СЕК     установка тайм-аута подключения в СЕК.
       --read-timeout=СЕК        установка тайм-аута чтения в СЕК.
  -w,  --wait=СЕКУНДЫ            пауза в СЕКУНДАХ между загрузками.
       --waitretry=СЕКУНДЫ       пауза в 1..СЕКУНДЫ между повторными попытками загрузки.
       --random-wait             пауза в 0...2*WAIT секунд между загрузками.
       --no-proxy                явно выключить прокси.
  -Q,  --quota=ЧИСЛО             установить величину квоты загрузки в ЧИСЛО.
       --bind-address=АДРЕС      привязка к АДРЕСУ (имя хоста или IP) локального хоста.
       --limit-rate=СКОРОСТЬ     ограничение СКОРОСТИ загрузки.
       --no-dns-cache            отключение кэширования поисковых DNS-запросов.
       --restrict-file-names=ОС  ограничение на символы в именах файлов,
                                 использование которых допускает ОС.
       --ignore-case             игнорировать регистр при сопоставлении
                                 файлов и/или каталогов.
  -4,  --inet4-only              подключаться только к адресам IPv4.
  -6,  --inet6-only              подключаться только к адресам IPv6.
       --prefer-family=СЕМЕЙСТВО подключаться сначала к адресам указанного семейства,
                                 может быть IPv6, IPv4 или ничего.
       --user=ПОЛЬЗОВАТЕЛЬ       установить и ftp- и http-пользователя в ПОЛЬЗОВАТЕЛЬ.
       --password=ПАРОЛЬ         установить и ftp- и http-пароль в ПАРОЛЬ.

Каталоги:
  -nd, --no-directories           не создавать каталоги.
  -x,  --force-directories        принудительно создавать каталоги.
  -nH, --no-host-directories      не создавать каталоги как на хосте.
       --protocol-directories     использовать имя протокола в каталогах.
  -P,  --directory-prefix=ПРЕФИКС сохранять файлы в ПРЕФИКС/...
       --cut-dirs=ЧИСЛО           игнорировать ЧИСЛО компонентов удалённого каталога.

Опции HTTP:
       --http-user=ПОЛЬЗОВАТЕЛЬ установить http-пользователя в ПОЛЬЗОВАТЕЛЬ.
       --http-password=ПАРОЛЬ  установить http-пароль в ПАРОЛЬ.
       --no-cache              отвергать кэшированные сервером данные.
  -E,  --html-extension        сохранять HTML-документы с расширением `.html'.
       --ignore-length         игнорировать поле заголовка `Content-Length'.
       --header=СТРОКА         вставить СТРОКУ между заголовками.
       --max-redirect          максимально допустимое число перенаправлений
                               на страницу.
       --proxy-user=ПОЛЬЗОВАТЕЛЬ установить ПОЛЬЗОВАТЕЛЯ в качестве имени пользователя для прокси.
       --proxy-password=ПАРОЛЬ   установить ПАРОЛЬ в качестве пароля для прокси.
       --referer=URL           включить в HTTP-запрос заголовок `Referer: URL'.
       --save-headers          сохранять HTTP-заголовки в файл.
  -U,  --user-agent=АГЕНТ      идентифицировать себя как АГЕНТ вместо Wget/ВЕРСИЯ.
       --no-http-keep-alive    отключить поддержание активности HTTP (постоянные подключения).
       --no-cookies            не использовать кукисы.
       --load-cookies=ФАЙЛ     загрузить кукисы из ФАЙЛА перед сеансом.
       --save-cookies=ФАЙЛ     сохранить кукисы в ФАЙЛ после сеанса.
       --keep-session-cookies  загрузить и сохранить кукисы сеанса (непостоянные).
       --post-data=СТРОКА      использовать метод POST; отправка СТРОКИ в качестве данных.
       --post-file=ФАЙЛ        использовать метод POST; отправка содержимого ФАЙЛА.
       --content-disposition   Учитывать заголовок Content-Disposition
                               при выборе имён для локальных файлов
                               (ЭКСПЕРИМЕНТАЛЬНЫЙ).

Опции HTTPS (SSL/TLS):
       --secure-protocol=ПР     выбор безопасного протокола: auto, SSLv2,
                                SSLv3 или TLSv1.
       --no-check-certificate   не проверять сертификат сервера.
       --certificate=FILE       файл сертификата пользователя.
       --certificate-type=ТИП   тип сертификата пользователя: PEM или DER.
       --private-key=ФАЙЛ       файл секретного ключа.
       --private-key-type=ТИП   тип секретного ключа: PEM или DER.
       --ca-certificate=ФАЙЛ    файл с набором CA.
       --ca-directory=КАТ       каталог, в котором хранится список CA.
       --random-file=ФАЙЛ       файл со случайными данными для SSL PRNG.
       --egd-file=ФАЙЛ          файл, определяющий сокет EGD со случайными данными.

Опции FTP:
       --ftp-user=ПОЛЬЗОВАТЕЛЬ установить ftp-пользователя в ПОЛЬЗОВАТЕЛЬ.
       --ftp-password=ПАРОЛЬ   установить ftp-пароль в ПАРОЛЬ.
       --no-remove-listing     не удалять файлы файлы `.listing'.
       --no-glob               выключить маски для имён файлов FTP.
       --no-passive-ftp        отключить "пассивный" режим передачи.
       --retr-symlinks         при рекурсии загружать файлы по ссылкам (не каталоги).
       --preserve-permissions  сохранять права доступа удалённых файлов.

Рекурсивная загрузка:
  -r,  --recursive          включение рекурсивной загрузки.
  -l,  --level=ЧИСЛО        глубина рекурсии (inf и 0 - бесконечность).
       --delete-after       удалять локальные файлы после загрузки.
  -k,  --convert-links      делать ссылки локальными в загруженном HTML.
  -K,  --backup-converted   перед преобразованием файла X делать резервную копию X.orig.
  -m,  --mirror             короткая опция, эквивалентная
                            -N -r -l inf --no-remove-listing.
  -p,  --page-requisites    загрузить все изображения и проч., необходимые для отображения HTML-страницы.
       --strict-comments    включить строгую (SGML) обработку комментариев HTML.

Разрешения/запреты при рекурсии:
  -A,  --accept=СПИСОК             список разрешённых расширений, разделённых запятыми.
  -R,  --reject=СПИСОК             список запрещённых расширений, разделённых запятыми.
  -D,  --domains=СПИСОК            список разрешённых доменов, разделённых запятыми.
       --exclude-domains=СПИСОК    список запрещённых доменов, разделённых запятыми.
       --follow-ftp                следовать по ссылкам FTP в HTML-документах.
       --follow-tags=СПИСОК        список используемых тегов HTML, разделённых запятыми.
       --ignore-tags=СПИСОК        список игнорируемых тегов HTML, разделённых запятыми.
  -H,  --span-hosts                заходить на чужие хосты при рекурсии.
  -L,  --relative                  следовать только по относительным ссылкам.
  -I,  --include-directories=СПИСОК список разрешённых каталогов.
  -X,  --exclude-directories=СПИСОК список исключаемых каталогов.
  -np, --no-parent                 не подниматься в родительский каталог.

Отчёты об ошибках и пожелания отправляйте на <bug-wget@gnu.org>.

В простейшем исполнении wget’ом можно пользоваться вот так:

$ wget http://rapidshare.com/file.rar

Стоит отметить, что если URL адрес ссылки содержит знаки “?” или “&” то его следует брать в кавычки, иначе командный интерпретатор при встрече таких знаков отреагирует по своему как следует оболочке.

Ставим закачку на сервер. Подгружаем текстовый файл со списком ссылок для закачки, например, в папку /home/daemony/download/. В принципе осталась одна маленькая деталь.

Как Рапида понимает “качающий - премиум-пользователь или нет”? Естественно, как это делают все ресурсы в сети Интернет, посредством кукисов (cookies). Если наш wget начнет сейчас качать напрямую ссылки из файла, у него ничего не выйдет и кроме как html страницы с ошибками от Рапиды он не получит. Для того, чтобы сервера rapidshare.com отдали wget’у нужные файлы, он должен отправить сначала свои cookies, в которых указана информация о премиум-аккаунте.

Как эти cookies получить? Очень просто. Из браузера. Обычного оконного браузера, которым Вы пользуетесь каждый день. Я приведу пример для Mozilla Firefox, которым пользуюсь я.

Firefox хранит все свои cookies в профиле пользователя, в файле USERPROFILE/Firefox/Profiles/default/cookies.txt Этот файл представляет собой набор записей, по одной в строке. Авторизуйтесь в премиум-зоне Рапиды (https://ssl.rapidshare.com/) и в этом файле появится соответсвующая запись. Она может быть похожа вот на эту:

 .rapidshare.com	TRUE / FALSE 1531710000	user c1363414-%34%34%34%34%34%30%32%36

Вобщем, поиск по файлу cookies.txt в текстовом редакторе по ключевому слову “rapidshare” Вам поможет. Скопируем ее и вставим в наш текстовый файл кукисов на сервере, где будет работать wget. Теперь все готово, можно запускать!

$ cd /home/daemony/download/
$ wget -bc --limit-rate=32k -i=links.txt –load-cookies=rapid.txt

Вышеприведенная команда запустит wget на скачивание файлов в фоновом режиме, с поддержкой докачки в случае обрыва связи. При этом wget будет качать со скоростью не больше чем 32 килобайта в секунду (256 килобит/с), для закачки будет брать ссылки из файла links.txt и перед началом работы загружать кукисы из файла rapid.txt

Можно забыть о процессе на несколько дней. Он будет работать себе потихоньку в фоне, а мы сможем наблюдать состояние закачки в файле wget.log, который появится в каталоге работы программы и в котором wget будет отображать прогресс закачки.

 

Ключевые слова


| | | |
 

Публикации по теме

Понедельник, 18 февраля, 2008 10:55:51 EET

Подпишись на RSS ленту и будь в курсе обновлений

Я хочу добавить Daemony`s Live RSS ленту в Google Reader Я хочу добавить Daemony`s Live RSS ленту в Яндекс.Лента Я хочу получать RSS ленту Daemony`s Live Blog по электронной почте Я хочу добавить Daemony`s Live RSS ленту в My Yahoo Я хочу добавить Daemony`s Live RSS ленту в My MSN

Я хочу подписаться на Daemony`s Live RSS ленту комментариев к записям
  1. Комментарии (5) к публикации “Wget и cookies. Закачка в консоли с файлообменников.”

  2. № 1 .:. Pe6eHok говорит:

    А не проше указать пароль и логин

    wget –http-user=XXXXX –http-password=XXXXXXXXX http://rapidshare.com/file.rar

    2008-03-13 12:44:36 EET
  3. № 2 .:. Daemony говорит:

    Если я не ошибаюсь, то такой вариант следует указывать в случае использования HTTP авторизации, а не как на рапиде через cookies.

    Ошибаюсь? Поправьте. :)

    2008-03-13 12:46:54 EET
  4. № 3 .:. Pe6eHok говорит:

    Именно так с рапиды и качаю уже года 1,5

    P.S. В screen ставлю на ночь :)

    2008-03-13 14:52:58 EET
  5. № 4 .:. Daemony говорит:

    Ну если это так, то спасибо за подсказку.
    Кстати, а зачем в screen, если можно wget -bc и в фон его? :)

    2008-03-13 14:55:03 EET
  6. № 5 .:. Pe6eHok говорит:

    Можно и так .. Просто у меня в screen мого чего вертится .. тот же rtorrent на пример

    2008-03-13 15:13:27 EET

Добавить комментарий

Быстрая вставка HTML тегов

Подсказки:
  • Для вставки фрагментов кода используйте "быстрый" тег <PRE></PRE>.
  • Для цитирования фрагментов текста используйте "Цитата".
  • Поддерживаются также другие HTML теги.

Поля, помеченные красной "звездочкой" обязательны к заполнению.