LINUX.ORG.RU

Скрипт «скачать всю музыку Цоя с сайта»


0

2
#!/usr/bin/perl -w

use strict;
use warnings;

use WWW::Mechanize;


my $URL = 'http://www.zipsites.ru/music/kino/';
my $BROWSER_AGENT = 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)';
my $WGET = '/usr/bin/wget';
my $MP3DIR = '/tmp/kino';

my	$browser = WWW::Mechanize->new(agent => $BROWSER_AGENT, onerror => undef, stack_depth => 1);
$browser->add_header('Accept-Encoding' => undef);
my $r = $browser->get($URL);
unless ($browser->success){
	print "Can't get url\n";
	exit;
}
 
foreach($browser->links()){
	my $url = $_->url();
	if($url =~ /.+\/(.+)\/(.+)\.mp3$/i){
		mkdir($MP3DIR) if(!-e($MP3DIR));
		mkdir("$MP3DIR/$1") if(!-e("$MP3DIR/$1"));
		if(!-e("$MP3DIR/$1/$2.mp3")){
			system("$WGET --user-agent='$BROWSER_AGENT' -P \"$MP3DIR/$1\" \"$url\"");
		}
		else{
			print "\"$2\" already exists! Skip.\n";
		}
	}
}

print "DONE!\n";

Может кому пригодится...

★★★

>Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)
А потом авторы того сайта будут чертыхаясь пилить свой сайт под IE6 для Windows 2000, потому как «ну ведь ходят же к нам с ним до сих пор, причем активные люди».

proud_anon ★★★★★ ()

А что, wget -r ... не работает?

Eddy_Em ☆☆☆☆☆ ()

скрипт гавно так как:

system("$WGET --user-agent='$BROWSER_AGENT' -P \"$MP3DIR/$1\" \"$url\""); 

^^^--- вот этого нада было избежать. переменные вставляются без экранирования.

(ШКОЛОЛО??? а не скините мне пожаласта парочку ссылок на выша сайты, чтобы я сделал XSS/SQL-инъекции в них?)

вобщем оценка ДВА!

$ p.s.: а экранировать для system() нада символы: <\> , <$> , <`> , <«> , если используюся <»>-ковычки для строк .

$ p.p.s: а в случае использования <'>-ковычек — экранировать нада только символ <'> заменяя его на <'\"> (этот способ прощще для реализации, но труднее для понимания, новечкам)

$ p.p.p.s.: а лучше всегда не жкранироваь НИЧЕГО, а просто использовать запуска НАПРЯМУЮ, без system()

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

>скрипт гавно так как:

Да ладно, у него все переменные в коде скрипта, никаких проблем не будет.

anonymous ()
Ответ на: комментарий от anonymous

> Да ладно, у него все переменные в коде скрипта, никаких проблем не будет.

ладно , один раз прощяю... но вообще нада быть поосторожнее с system(...) :-)

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

Найти Цоя в достойном качестве (что бы было профессионально оцифровано, улучшено) записи крайне сложно. Давольна часто вообще просто рип с кастеты на торренты выкладывают.

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