Помогите с downloader'ом с files.mail.ru (Downloader с files.mail.ru: help! bash+wget+grep+dev/null?)

Модератор: Модераторы разделов

pibodi
Сообщения: 6

Помогите с downloader'ом с files.mail.ru

Сообщение pibodi »

Господа, прошу вашей помощи!
Нужно скачивать файлы с сервера files.mail.ru из-под Linux'a, но возникла проблема...

Хотя каптчи на mail.ru нет (в отличии от narod.ru), но тем не менее wget не помогает...
Прошу помочь написать скрипт для bash, который помог бы все же получить доступ к файлам на mail.ru.

Для сервера narod.ru есть такой вариант:

Код: Выделить всё

#!/bin/sh
OUT=/tmp/1.html
UA="Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9.1.1) Gecko/20090719 Gentoo Firefox/3.5.1 YB/3.5.1"
if [ $# -lt 1 ]; then
    echo "USAGE: $0 FILE"
    exit 1
fi
FILE=$1
cat $FILE | while read str
do
    wget -U"$UA" "$str" -O $OUT
    LINK=`grep 'class="h-link" rel="yandex_bar"' $OUT | awk '{ match($0, /href="(.*)"/, m); print m[1] }'`

    wget http://narod.ru$LINK
    rm $OUT
    sleep 5s
done


Заранее благодарю за помощь!
Спасибо сказали:
Аватара пользователя
proDOOMman
Сообщения: 284

Re: Помогите с downloader'ом с files.mail.ru

Сообщение proDOOMman »

Вообще то это скрипт для заливки файлов на народ, а не для скачивания, и к тому же нерабочий.
И вы бы хоть ссылку дали для примера на какой-нить файл с мылру.
Ubuntu LL x86 on Acer Extensa 5635G
Спасибо сказали:
pibodi
Сообщения: 6

Re: Помогите с downloader'ом с files.mail.ru

Сообщение pibodi »

Ну почему же не рабочий?

он совершенно точно работает, поскольку я им пользуюсь, так например:

~/script.sh filelist

в файле "filelist", как Вы понимаете, есть список ссылок, вроде
http://narod.ru/disk/13104850000/Pelleas.part1.rar.html
http://narod.ru/disk/13107093000/Pelleas.part2.rar.html
http://narod.ru/disk/13107905000/Pelleas.part3.rar.html
http://narod.ru/disk/13108640000/Pelleas.part4.rar.html

и т.д.

И все скачивается...

А вот как быть с files.mail.ru я не знаю...
Собственно, и прошу поэтому Вашей помощи.

Ссылка на файл на сервере mail.ru, например, такая:
http://files.mail.ru/5D4ZET
Спасибо сказали:
pcodr
Сообщения: 283
ОС: Debian

Re: Помогите с downloader'ом с files.mail.ru

Сообщение pcodr »

Нет проблем...

Код: Выделить всё

#!/bin/sh

die()
{
    echo "$1" >&2
    exit 1
}

link=$1
[ -z "$link" ] && die "usage: $0 link"
which wget >/dev/null 2>&1 || die "you need wget to run this"

link=`wget -q -O- "$link" | egrep -o 'http://content[0-9]+\.files.mail\.ru/[^'\''"]+' -m 1` || die "download link not found"
for i in `seq 10 -1 1`
do
    printf "%02d\r" $i
    sleep 1
done

wget --content-disposition "$link"
remote system type is unix
Спасибо сказали:
pibodi
Сообщения: 6

Re: Помогите с downloader'ом с files.mail.ru

Сообщение pibodi »

Огромное спасибо за помощь, но, к сожалению, предложенный скрипт не работает,
поскольку опция --content-disposition не поддерживается версией wget'a, установленной на сервере.
Пожалуйста, если Вам не сложно, нельзя ли обойти эту опцию и сделать как-нибудь без нее?

Заранее благодарю!

pcodr писал(а):
10.01.2010 15:46
Нет проблем...

Код: Выделить всё

#!/bin/sh

die()
{
    echo "$1" >&2
    exit 1
}

link=$1
[ -z "$link" ] && die "usage: $0 link"
which wget >/dev/null 2>&1 || die "you need wget to run this"

link=`wget -q -O- "$link" | egrep -o 'http://content[0-9]+\.files.mail\.ru/[^'\''"]+' -m 1` || die "download link not found"
for i in `seq 10 -1 1`
do
    printf "%02d\r" $i
    sleep 1
done

wget --content-disposition "$link"
Спасибо сказали:
pcodr
Сообщения: 283
ОС: Debian

Re: Помогите с downloader'ом с files.mail.ru

Сообщение pcodr »

Уберите эту опцию или обновите wget. Кажется эта опция появилась с версии 1.11. Без неё просто имена файлов будут немного странные, возможно это для вас не критично.
remote system type is unix
Спасибо сказали:
pibodi
Сообщения: 6

Re: Помогите с downloader'ом с files.mail.ru

Сообщение pibodi »

Все, понял! Спасибо!
Спасибо сказали:
pibodi
Сообщения: 6

Re: Помогите с downloader'ом с files.mail.ru

Сообщение pibodi »

pcodr писал(а):
10.01.2010 23:16
Уберите эту опцию или обновите wget. Кажется эта опция появилась с версии 1.11. Без неё просто имена файлов будут немного странные, возможно это для вас не критично.


Возник еще один вопрос.
Что делать в таких случаях:
http://files.mail.ru/RB20UJ

Т.е. когда в папке содержится несколько файлов? Скрипт останавливается после первого архива и дальше не идет
Спасибо сказали:
pcodr
Сообщения: 283
ОС: Debian

Re: Помогите с downloader'ом с files.mail.ru

Сообщение pcodr »

Here it is

Код: Выделить всё

#!/bin/sh

die()
{
    echo "$1" >&2
    exit 1
}

link=$1
[ -z "$link" ] && die "usage: $0 link"
which wget >/dev/null 2>&1 || die "you need wget to run this"

link=`wget -q -O- "$link" | egrep -o 'http://content[0-9]+\.files.mail\.ru/[^'\''"]+' | sort -u` || die "download link not found"
for i in `seq 10 -1 1`
do
    printf "%02d\r" $i
    sleep 1
done

for i in $link
do
    wget --content-disposition "$i"
done


Учите Bash
remote system type is unix
Спасибо сказали:
pibodi
Сообщения: 6

Re: Помогите с downloader'ом с files.mail.ru

Сообщение pibodi »

Благодарю покорнейше!
Вы правы, постараюсь подружиться с bash

pcodr писал(а):
11.01.2010 13:56
Here it is

Код: Выделить всё

#!/bin/sh

die()
{
    echo "$1" >&2
    exit 1
}

link=$1
[ -z "$link" ] && die "usage: $0 link"
which wget >/dev/null 2>&1 || die "you need wget to run this"

link=`wget -q -O- "$link" | egrep -o 'http://content[0-9]+\.files.mail\.ru/[^'\''"]+' | sort -u` || die "download link not found"
for i in `seq 10 -1 1`
do
    printf "%02d\r" $i
    sleep 1
done

for i in $link
do
    wget --content-disposition "$i"
done


Учите Bash
Спасибо сказали:
joohny
Сообщения: 23

Re: Помогите с downloader'ом с files.mail.ru

Сообщение joohny »

Mail.ru изменил формат вывода ссылок на скачивание, поэтому предлагаю свою версию скрипта, он конечно не обрабатывает исключения как в оригинальном скрипте в посте, но тем не менее спасает от рутины. Скрипт для скачивания файлов с files.mail.ru
Спасибо сказали: