He tropezado aquí вконтакте con el grupo bastante interesante: ”Soviético психоделические las películas de dibujos animados”) y bien, y porque a mí анлим es necesario balancear, ha decidido balancear todas las películas de dibujos animados del grupo)) ha comenzado a pensar En realidad como esto hacer, comer онлайн los servicios, es también плагин para Firefox y userjs para Opera, pero hay uno grande pero en cualquier de estos modos es necesario balancear por un fichero, y además ручами pasar copiar y т.д y así sucesivamente,
Como hay uno софт bajo винду, pero el rábano silvestre con él, bajo линукс las parejas даж no empezaba a buscar. Todo прелесь en la programación: si no existe tierno a ti софта, escribe) Quería escribir en el comienzo скрипт en bash’е, pero ha cambiado de opinión después y ha decidido escribir en python. En realidad aquí que ha resultado: если нет нежного тебе софта, напиши) Хотел в начале написать скрипт на bash’е, но потом передумал и решил написать на python. Собственно вот, что получилось:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 | # - * - coding: utf8 - * - import httplib import re import os #param url = ' линк hasta la lista del vídeo' email = ' el jabón' id = ' айди' hash = ' хэш de la consigna' # def pb_str (prc, ch, width): ch, width) : return ch * int ((prc * width) / 100)(prc * width) / 100) plinks = re.compile (' <div class = "aname"> <a href = "(VIDEO - [0-9] * _ [0-9] *)"> ')('<div class="aname"><a href="(video-[0-9]*_[0-9]*)">') phost = re.compile (' http:// (. *)/assets/videos / [a-f0-9] *\.vk.flv ')('http://(.*)/assets/videos/[a-f0-9]*\.vk.flv') pvtag = re.compile (' so\.addVariable \(¿\'vtag \', \' (. ¿*?) \' \); ')('so\.addVariable\(\'vtag\',\'(.*?)\'\);') pvkid = re.compile (' so\.addVariable \(¿\'vkid \', \' (. ¿*?) \' \); ')('so\.addVariable\(\'vkid\',\'(.*?)\'\);') pname = re.compile (' <h1>. * Y raquo; (. *) </h1> ')('<h1>.*» (.*)</h1>') width = 60 print ' Skachivanie de la lista de los videoficheros...' conn = httplib. HTTP (' vkontakte.ru ')HTTP('vkontakte.ru') conn.putrequest (' GET ', url), url) conn.putheader (' Host ', ' vkontakte.ru '), 'vkontakte.ru') conn.putheader (' Cookie ', ' remixemail = ' + email + '; remixmid = ' + id + '; remixpass = ' + hash), 'remixemail='+email+';remixmid='+id+';remixpass='+hash) conn.endheaders () conn.getreply () content = conn.getfile ().read ()).read() conn.close () all = plinks.findall (content)(content) print ' Es preparado' print str (len (all)) + ' de los ficheros para la carrera'len(all))+' файлов для скачки' count = 0 for i in all:: count + = 1 conn.connect (' vkontakte.ru ', 80),80) conn.putrequest (' GET ', ' http://vkontakte.ru/ ' +i), 'http://vkontakte.ru/'+i) conn.putheader (' Host ', ' vkontakte.ru '), 'vkontakte.ru') conn.putheader (' Cookie ', ' remixemail = ' + email + '; remixmid = ' + id + '; remixpass = ' + hash), 'remixemail='+email+';remixmid='+id+';remixpass='+hash) conn.endheaders () conn.getreply () content = conn.getfile ().read ()).read() conn.close () vtag = pvtag.search (content).group (1)content).group(1) vkid = pvkid.search (content).group (1)content).group(1) name = unicode (pname.search (content).group (1), ' cp1251 ')pname.search(content).group(1), 'cp1251') print str (count) + ': ' +namecount)+' : '+name filename = name + '.flv' conn.connect (' vkadre.ru ', 80),80) conn.putrequest (' GET ', ' http://vkadre.ru/get_video?vkid= ' +vkid + ' Y vtag = ' + vtag), 'http://vkadre.ru/get_video?vkid='+vkid+'&vtag='+vtag) conn.putheader (' Host ', ' vkadre.ru '), 'vkadre.ru') conn.endheaders () link = conn.getreply () [2] [' Location '])[2]['Location'] host = phost.search (link).group (1)link).group(1) conn.close () if os.path.isfile (filename):.isfile(filename): fstat = os.stat (filename)(filename) conn.connect (host, 80)80) conn.putrequest (' GET ', link), link) conn.putheader (' Host ', host), host) conn.endheaders () size = conn.getreply () [2] [' Content-Length '])[2]['Content-Length'] conn.close () if fstat.st_size <int (size): int(size): conn.connect (host, 80)80) conn.putrequest (' GET ', link), link) conn.putheader (' Host ', host), host) conn.putheader (' Range ', ' bytes = ' + str (fstat.st_size) + ' - '), 'bytes='+str(fstat.st_size)+'-') conn.endheaders () conn.getreply () flv_file = open (filename, ' ab ')filename, 'ab') src_flv = conn.getfile ()) get = fstat.st_size while True: kb = src_flv.read (1024)1024) get + = 1024 if not kb: break flv_file.write (kb) perc = round (get / (float (size)) *100,3)get/(float(size))*100,3) if perc> 100:: perc = 100.0 print '\r ' + str (perc).rjust (7) + ' DEL % [' + \ + str(perc).rjust(7) + '% [' + \ pb_str (perc, ' * ', width).ljust (width, ' ') + '] ',, width).ljust(width, ' ') + ']', flv_file.close () conn.close () print ' Ok' else: print ' Ok' else: conn.connect (host, 80)80) conn.putrequest (' GET ', link), link) conn.putheader (' Host ', host), host) conn.endheaders () size = conn.getreply () [2] [' Content-Length '])[2]['Content-Length'] flv_file = open (filename, ' wb ')filename, 'wb') src_flv = conn.getfile ()) get = 0 while True: kb = src_flv.read (1024)1024) get + = 1024 if not kb: break flv_file.write (kb) perc = round (get / (float (size)) *100,3)get/(float(size))*100,3) print '\r ' + str (perc).rjust (7) + ' DEL % [' + \ + str(perc).rjust(7) + '% [' + \ pb_str (perc, ' * ', width).ljust (width, ' ') + '] ',, width).ljust(width, ' ') + ']', flv_file.close () conn.close () print ' Ok' print ' Todos los ficheros son bajados' |
Собстенно el chirrido tira la página con la lista del vídeo saca, линки a ellos y baja por uno nombre del fichero se coge del nombre del vídeo. Porque no he ajustado la velocidad анлима a mí no ахти y нат en фряхе en la consecuencia de que инет es necesario a veces cortar en ноуте, en el chirrido ha añadido la posibilidad докачки del fichero. E.d. después del lanzamiento él comprueba si el fichero con tal nombre existe ya su dimensión menos necesario esto докачивает иначае pasa al fichero siguiente. En винде habrá lo más probable unos problemas con las codificaciones, pero mí en cierto modo mientras пофиг, pasar en винду no se reúno) Т.е. после запуска он проверяет если файл с таким именем уже существует и его размер меньше необходимого то докачивает иначае переходит к следующему файлу. В винде скорее всего будут проблемы с кодировками, но мне как-то пока пофиг, переходить на винду не собираюсь)
Una más nueva versión скрипта está aquí









Pingback: Вконтакте.ру «el Eco de la esfera de blog
Pingback: medicinal herbal tea
Pingback: reverse mortgages for seniors
Pingback: air purifiers home
Pingback: debt relief company
Pingback: debt consolidation companies
Pingback: debt negotiation
Pingback: debt relief company
Pingback: debt settlement company
Pingback: video editing
Pingback: debt relief company
Pingback: debt consolidation companies
Pingback: debt relief company
Pingback: debt relief company