LINUX.ORG.RU

[dev][bash] Скрипт скачивания с narod.ru

 ,


1

0

Помогите написать скрипт, который автоматизирует скачивания с народ.диска. А то есть куча ссылок, а ручками качать заколебался (качать несколько файлов одновременно нельзя)...

Есть файл со ссылками например:

http://narod.ru/disk/8582845000/VA%20-%20Pure%20Planet%20Volume%203%202009.rar.html

По этой ссылке надо вводить капчу, но можно дописать к юзерагенту «YB/3.5.1», и получить файл с прямой ссылкой на скачивание.

Осталось выдернуть ссылку на скачивание, кусок HTML'а выглядит примерно так:

<p class="direct-link-">
<span class="g-ff g-hidden">Если файл не&nbsp;начал скачиваться или вам надоело ждать, нажмите на&nbsp;ссылку:<br /></span>
<span class="g-ie g-hidden">Чтобы скачать файл, нажмите на&nbsp;ссылку:<br /></span>
<a class="h-link" rel="yandex_bar" href="/disk/start/15.dl15sd-narod.yandex.ru/8582845000/h82e3346909358e193e0ed0dc4dbddf44/VA%20-%20Pure%20Planet%20Volume%203%202009.rar">http://narod.ru/disk/8582845000/VA - Pure Planet Volume 3 2009.rar.html</a>
</p>

Подскажите, как выдернуть href из ссылки и передать его wget'у

Спасибо

★★★★★
Ответ на: комментарий от arsi

Можно и перл, питон, etc. Просто вся сложность в регэкспе, остальное элементарно...

xorik ★★★★★
() автор топика

Кто поможет дописать одну строку? :)

#!/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= #Тут будет регексп#
	wget $LINK
	sleep 5s
done

xorik ★★★★★
() автор топика
Ответ на: комментарий от xorik

cat ~/urls.txt | while read url; do wget -c `wget -U"Mozilla YB/3.5.1" "$url" -O - 2>/dev/null | grep -o 'href="/disk/[^"]\+' | sed 's|href="|http://narod.ru|'`;done

~/urls.txt — списо урлов, которые нужно скачать =) bash+wget+grep+/dev/null ;)

arsi ★★★★★
()
Ответ на: комментарий от bvvv

cat ~/urls.txt | while read url; do wget -c `lynx -useragent="Mozilla YB/3.5.1" -dump -listonly "$url" | grep -o 'http://narod.ru/disk/start.*'`;done

ну, вроде как профит ;)

arsi ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.