Je suis tombé ici вконтакте sur un groupe assez intéressant : ”Soviétique психоделические les dessins animés”) eh bien, et car chez moi анлим il faut balancer, a décidé de balancer tous les dessins animés du groupe)) a commencé à penser Proprement comme cela faire, manger en ligne les services, il y a aussi un plug-in pour Firefox et userjs pour Opera, mais il y a un grand mais dans chacun de ces moyens il faut balancer selon un fichier, et en plus ручами passer copier et т.д etc.,Наткнулся я тут вконтакте на довольно интересную группу:”Советские психоделические мультики”) ну и т.к. у меня анлим и надо что-то качать, решил качнуть все мультфильмы из группы)) Собственно начал думать как это сделать, есть онлайн сервисы, также есть плагин для Firefox и userjs для Opera, но есть одно большое но в любом из этих способов нужно качать по одному файлу, да и к тому же ручами заходить копировать и т.д и т.п.,
Comme il y a quelque софт sous винду, mais le raifort avec lui, sous линукс n'a pas commencé à chercher les couples даж. Tout прелесь dans la programmation : si est absent tendre à toi софта, écris) Voulait au début écrire скрипт sur bash’е, mais a changé d'avis ensuite et a décidé d'écrire sur python. Proprement voici qu'a résulté : вроде есть какой-то софт под винду, но хрен с ним, под линукс чёт даж искать не стал. Вся прелесь в программировании: если нет нежного тебе софта, напиши) Хотел в начале написать скрипт на bash’е, но потом передумал и решил написать на python. Собственно вот, что получилось:
11 22 33 44 55 66 77 88 99 1010 1111 1212 1313 1414 1515 1616 1717 1818 1919 2020 2121 2222 2323 2424 2525 2626 2727 2828 2929 3030 3131 3232 3333 3434 3535 3636 3737 3838 3939 4040 4141 4242 4343 4444 4545 4646 4747 4848 4949 5050 5151 5252 5353 5454 5555 5656 5757 5858 5959 6060 6161 6262 6363 6464 6565 6666 6767 6868 6969 7070 7171 7272 7373 7474 7575 7676 7777 7878 7979 8080 8181 8282 8383 8484 8585 8686 8787 8888 8989 9090 9191 9292 9393 9494 9595 9696 9797 9898 9999 100100 101101 102102 103103 104104 105105 106106 107107 108108 109109 110110 111111 112112 | # - * - coding : utf8 - * -# -*- coding: utf8 -*- import httplib import httplib import re import re import os import os #param #param url = ' линк jusqu'à la liste de vidéos' url = 'линк до списка с видео' email = ' le savon' email = 'мыло' id = ' айди' id = 'айди' hash = ' хэш du mot d'ordre' hash = 'хэш пароля' # def pb_str (prc, ch, width) : def pb_str(prc, ch, width) : return ch * int ((prc * width) / 100) return ch * int((prc * width) / 100) plinks = re.compile (' <div class = "aname"> <a href = "(VIDEO - [0-9] * _ [0-9] *)"> ') plinks = re.compile('<div class="aname"><a href="(video-[0-9]*_[0-9]*)">') phost = re.compile (' http:// (. *)/assets/videos / [a-f0-9] *\.vk.flv ') phost = re.compile('http://(.*)/assets/videos/[a-f0-9]*\.vk.flv') pvtag = re.compile (' so\.addVariable \(\'vtag \', \' (. * ?) \' \); ') pvtag = re.compile('so\.addVariable\(\'vtag\',\'(.*?)\'\);') pvkid = re.compile (' so\.addVariable \(\'vkid \', \' (. * ?) \' \); ') pvkid = re.compile('so\.addVariable\(\'vkid\',\'(.*?)\'\);') pname = re.compile (' <h1>. * ET raquo; (. *) </h1> ') pname = re.compile('<h1>.*» (.*)</h1>') width = 60 width = 60 print ' Skatchivanie de la liste des vidéofichiers...' print 'Скачивание списка видеофайлов...' conn = httplib. HTTP (' vkontakte.ru ') conn = httplib.HTTP('vkontakte.ru') conn.putrequest (' GET ', url) conn.putrequest('GET', url) conn.putheader (' Host ', ' vkontakte.ru ') conn.putheader('Host', 'vkontakte.ru') conn.putheader (' Cookie ', ' remixemail = ' + email + '; remixmid = ' + id + '; remixpass = ' + hash) conn.putheader('Cookie', 'remixemail='+email+';remixmid='+id+';remixpass='+hash) conn.endheaders () conn.endheaders() conn.getreply () conn.getreply() content = conn.getfile ().read () content = conn.getfile().read() conn.close () conn.close() all = plinks.findall (content) all = plinks.findall(content) print ' Est prêt' print 'Готово' print str (len (all)) + ' des fichiers pour les courses' print str(len(all))+' файлов для скачки' count = 0 count = 0 for i in all : for i in all: count + = 1 count += 1 conn.connect (' vkontakte.ru ', 80) conn.connect('vkontakte.ru',80) conn.putrequest (' GET ', ' http://vk ontakte.ru/ ' +i) conn.putrequest('GET', 'http://vkontakte.ru/'+i) conn.putheader (' Host ', ' vkontakte.ru ') conn.putheader('Host', 'vkontakte.ru') conn.putheader (' Cookie ', ' remixemail = ' + email + '; remixmid = ' + id + '; remixpass = ' + hash) conn.putheader('Cookie', 'remixemail='+email+';remixmid='+id+';remixpass='+hash) conn.endheaders () conn.endheaders() conn.getreply () conn.getreply() content = conn.getfile ().read () content = conn.getfile().read() conn.close () conn.close() vtag = pvtag.search (content).group (1) vtag = pvtag.search(content).group(1) vkid = pvkid.search (content).group (1) vkid = pvkid.search(content).group(1) name = unicode (pname.search (content).group (1), ' cp1251 ') name = unicode(pname.search(content).group(1), 'cp1251') print str (count) + ' : ' +name print str(count)+' : '+name filename = name + '.flv' filename = name +'.flv' conn.connect (' vkadre.ru ', 80) conn.connect('vkadre.ru',80) conn.putrequest (' GET ', ' http://vkadre.ru/get_vide o ? vkid = ' + vkid + ' ET vtag = ' + vtag) conn.putrequest('GET', 'http://vkadre.ru/get_video?vkid='+vkid+'&vtag='+vtag) conn.putheader (' Host ', ' vkadre.ru ') conn.putheader('Host', 'vkadre.ru') conn.endheaders () conn.endheaders() link = conn.getreply () [2] [' Location '] link = conn.getreply()[2]['Location'] host = phost.search (link).group (1) host = phost.search(link).group(1) conn.close () conn.close() if os.path.isfile (filename) : if os.path.isfile(filename): fstat = os.stat (filename) fstat = os.stat(filename) conn.connect (host, 80) conn.connect(host,80) conn.putrequest (' GET ', link) conn.putrequest('GET', link) conn.putheader (' Host ', host) conn.putheader('Host', host) conn.endheaders () conn.endheaders() size = conn.getreply () [2] [' Content-Length '] size = conn.getreply()[2]['Content-Length'] conn.close () conn.close() if fstat.st_size <int (size) : if fstat.st_size < int(size): conn.connect (host, 80) conn.connect(host,80) conn.putrequest (' GET ', link) conn.putrequest('GET', link) conn.putheader (' Host ', host) conn.putheader('Host', host) conn.putheader (' Range ', ' bytes = ' + str (fstat.st_size) + ' - ') conn.putheader('Range', 'bytes='+str(fstat.st_size)+'-') conn.endheaders () conn.endheaders() conn.getreply () conn.getreply() flv_file = open (filename, ' ab ') flv_file = open(filename, 'ab') src_flv = conn.getfile () src_flv = conn.getfile() get = fstat.st_size get = fstat.st_size while True : while True: kb = src_flv.read (1024) kb = src_flv.read(1024) get + = 1024 get += 1024 if not kb : if not kb: break break flv_file.write (kb) flv_file.write(kb) perc = round (get / (float (size)) *100,3) perc = round(get/(float(size))*100,3) if perc> 100 : if perc > 100: perc = 100.0 perc = 100.0 print '\r ' + str (perc).rjust (7) + ' DU % [' + \ print '\r' + str(perc).rjust(7) + '% [' + \ pb_str (perc, ' * ', width).ljust (width, ' ') + '] ', pb_str(perc, '*', width).ljust(width, ' ') + ']', flv_file.close () flv_file.close() conn.close () conn.close() print ' Ok' print ' Ok' else : else: print ' Ok' print ' Ok' else : else: conn.connect (host, 80) conn.connect(host,80) conn.putrequest (' GET ', link) conn.putrequest('GET', link) conn.putheader (' Host ', host) conn.putheader('Host', host) conn.endheaders () conn.endheaders() size = conn.getreply () [2] [' Content-Length '] size = conn.getreply()[2]['Content-Length'] flv_file = open (filename, ' wb ') flv_file = open(filename, 'wb') src_flv = conn.getfile () src_flv = conn.getfile() get = 0 get = 0 while True : while True: kb = src_flv.read (1024) kb = src_flv.read(1024) get + = 1024 get += 1024 if not kb : if not kb: break break flv_file.write (kb) flv_file.write(kb) perc = round (get / (float (size)) *100,3) perc = round(get/(float(size))*100,3) print '\r ' + str (perc).rjust (7) + ' DU % [' + \ print '\r' + str(perc).rjust(7) + '% [' + \ pb_str (perc, ' * ', width).ljust (width, ' ') + '] ', pb_str(perc, '*', width).ljust(width, ' ') + ']', flv_file.close () flv_file.close() conn.close () conn.close() print ' Ok' print ' Ok' print ' tous les fichiers sont transférés' print 'Все файлы скачаны' |
Собстенно le craquement tire страничку avec la liste de vidéo sort, линки sur eux et transfère selon un nom du fichier se met du nom de vidéo. Car je n'ai pas encore orienté la vitesse анлима chez moi non ah et нат sur фряхе dans la conséquence de quoi инет il faut parfois couper sur ноуте, au craquement a ajouté la possibilité докачки du fichier. I.e. après la mise en marche il contrôle si le fichier avec un tel nom existe déjà son montant moins nécessaire cela докачивает иначае passe au fichier suivant. À винде il y aura probablement des problèmes avec les codages, mais à moi quelque peu пофиг, passer sur винду je ne me réunis pas)Собстенно скрип тянет страничку со списком видео вытаскивает, линки на них и скачивает по одному название файла берётся из названия видео. Т.к. скорость анлима у меня не ахти и нат на фряхе я ещё не настроил в следствии чего инет нужно иногда отрубать на ноуте, в скрип добавил возможность докачки файла. Т.е. после запуска он проверяет если файл с таким именем уже существует и его размер меньше необходимого то докачивает иначае переходит к следующему файлу. В винде скорее всего будут проблемы с кодировками, но мне как-то пока пофиг, переходить на винду не собираюсь)
Une plus nouvelle version скрипта est ici более новая версия скрипта лежит тут









Pingback : Вконтакте.ру «l'Écho блогосферыPingback: Вконтакте.ру « Эхо блогосферы
Pingback : medicinal herbal teaPingback: medicinal herbal tea
Pingback : reverse mortgages for seniorsPingback: reverse mortgages for seniors
Pingback : air purifiers homePingback: air purifiers home
Pingback : debt relief companyPingback: debt relief company
Pingback : debt consolidation companiesPingback: debt consolidation companies
Pingback : debt negotiationPingback: debt negotiation
Pingback : debt relief companyPingback: debt relief company
Pingback : debt settlement companyPingback: debt settlement company
Pingback : video editingPingback: video editing
Pingback : debt relief companyPingback: debt relief company
Pingback : debt consolidation companiesPingback: debt consolidation companies
Pingback : debt relief companyPingback: debt relief company
Pingback : debt relief companyPingback: debt relief company