vadim_kataev (vadim_kataev) wrote,
vadim_kataev
vadim_kataev

Category:

Как закачать 1000 и более альбомов музыки

Так как интеллект поисковых агентов ещё не достиг уровня самостоятельной полностью автономной работы, нам таки придётся сначала запастись терпением и самим найти вебресурс-жертву. Прежде всего мы должны чётко сформулировать критерий поиска - в данном примере нас интересуют не просто файлы определённого формата (в нашем случае это могли бы быть mp3), но и такие файлы, прямые ссылки на которые содержат дополнительную релевантную для нас информацию (скажем мы ищем последний альбом группы Сплин).
Поехали...

Прогуглим что нить типа "сплин альбом 2003 2004 mp3", уже разглядывая сайт третьего результата от гугла, мы замечаем наличие прямых линков на mp3 файлы - как раз что нам нужно. Сайт-жертва найден и теперь самое время взять информацию о структуре каталогов сайта. Для этого мы можем например сравнить
1)две ссылки на разные файлы из одного альбома
2)две ссылки на разные файлы из двух разных альбомов одного исполнителя
3)аналогично (если важно) по другим категориям (напр. жанр)
То есть смысл этого в том, что бы узнать структуру дерева файлов на сайте-жертве.
Существует несколько скриптов-скраулеров для автоматизации этой работы, но я не хочу углубляться сейчас в тонкости DataMining :) (такие скрипты используют почти все поисковые агенты)

Итак, в нашем случае обнаруживается инкрементный индекс файлов и директориев, что даёт нам возможность всего одной-двумя строками скачать вообще весь ресурс :)
Посмотрим поближе.
В одном альбоме нумерация такая:

http://dl.zvuki.ru/3/0692/mp3/2.mp3
http://dl.zvuki.ru/3/0692/mp3/3.mp3


то есть инкремент ровно +1, что скачивается например так:

for i in range(1,30):wget -c "http://dl.zvuki.ru/3/0692/mp3/${i}.mp3"


и мы имеем последний альбом группы Сплин.
Если же мы будем использовать что то вроде:
for alb in range(592,693)
        for i in range(1,20):wget -c "http://dl.zvuki.ru/3/0${alb}/mp3/${i}.mp3"

то мы скачаем 100 альбомов музыки, аналогично качается 1000 и более альбомов :)

PS:
a)используйте комманду ipython -p pysh для входа в ipython shell
b)на ресурсе в примере многие альбомы не полные
Subscribe

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your IP address will be recorded 

  • 58 comments