рд╣рд╛рдп, рд╣рдмреНрдмрд░!
рдореИрдВрдиреЗ рдХрд┐рд╕реА рддрд░рд╣ vkontakte рд╕реЗ рдЕрдкрдирд╛ рд╕рдВрдЧреАрдд рд╕рдВрдЧреНрд░рд╣ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ (рдФрд░ рдпрд╣ рд▓рдЧрднрдЧ 1000 рдЧрд╛рдиреЗ рд╣реИрдВ)ред рдореИрдВ vk.api рд╕реЗ рд╕рдВрдкрд░реНрдХ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЕрдЬрдЧрд░ +
рдЕрдиреБрд░реЛрдз рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред рдЗрд╕рдХрд╛ рдХреНрдпрд╛ рд╣реБрдЖ - рдХрдЯ рдХреЗ рдиреАрдЪреЗ!
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдЬрдм рд╣рдо рдЕрдкрдиреЗ VKontakte рдСрдбрд┐рдпреЛ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдкреГрд╖реНрда рддрдХ рдкрд╣реБрдВрдЪрддреЗ рд╣реИрдВ рддреЛ рд╣рдорд╛рд░рд╛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИред рдбреЗрд╡рд▓рдкрд░ рдЯреВрд▓ рдЦреЛрд▓реЗрдВ (рдореИрдВрдиреЗ Chrome, F12 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ) рдФрд░
vk.com/audio рдкрд░
рдЬрд╛рдПрдВ ред рдмреНрд░рд╛рдЙрдЬрд╝рд░ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдП рдЧрдП рд╕рднреА рдЕрдиреБрд░реЛрдз рд╣рдо рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ:

рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рдЕрд░реНрде рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:
рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ GET рдЕрдиреБрд░реЛрдз рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рд╕рд░реНрд╡рд░ рдкрд░ рднреЗрдЬрддреЗ рд╣реИрдВ рдЬрдм рд╣рдо рдкрд╣рд▓реА рдмрд╛рд░ рдкреГрд╖реНрда рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВред рдЬрд╡рд╛рдм рдореЗрдВ, рд╕рд░реНрд╡рд░ рд╣рдореЗрдВ html рдкреЗрдЬ рдХреЛрдб рджреЗрддрд╛ рд╣реИред
рдлрд┐рд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рд▓реЛрдб рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрддрд╛ рд╣реИ: рд╕реАрдПрд╕рдПрд╕, рдЬреЗрдПрд╕ рдФрд░ рдЫрд╡рд┐рдпрд╛рдВред
рд╕реВрдЪреА рдХреЗ рдЕрдВрдд рдореЗрдВ, рд╣рдо рдПрдХ рдЧреИрд░-рдорд╛рдирдХ рд░реЗрдЦрд╛ рджреЗрдЦрддреЗ рд╣реИрдВ: рдпрд╣ рдПрдХ POST рдЕрдиреБрд░реЛрдз рд╣реИ рдЬрд┐рд╕реЗ рдСрдбрд┐рдпреЛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рдпрд╣ рдЕрдиреБрд░реЛрдз рдСрдбрд┐рдпреЛ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдХреА рдПрдХ рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рднреЗрдЬрддрд╛ рд╣реИред
рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рд╕рд░реНрд╡рд░ рдПрдХ рдкрдВрдХреНрддрд┐ рджреЗрддрд╛ рд╣реИ:
11055<!>audio.css,audio.js<!>0<!>6362<!>0<!>{"all":[ ['17738938','173762121', 'http://cs1276.userapi.com/u1040081/audio/c0e97293c5e2.mp3','300','5:00', 'Louis Prima','Sing, Sing, Sing (With A Swing)','369754','0','0','','0','1'], ['17738938','173368012', 'http://cs4372.userapi.com/u9237008/audio/5f51ceac6ca1.mp3','326','5:26', 'Look at my horse','My horse is amazing','10324035','0','0','','0','1'], ...
рдмрд┐рдВрдЧреЛ! рдпрд╣ рд╡рд╣реА рд╣реИ рдЬреЛ рд╣рдореЗрдВ рдЪрд╛рд╣рд┐рдПред рдЬрд╡рд╛рдм рдореЗрдВ, рд╕рд░реНрд╡рд░ рдиреЗ рд╣рдореЗрдВ рдЕрдкрдиреА рд╕рднреА рд░рдЪрдирд╛рдУрдВ рдХреА JSON рд╕реВрдЪреА рджреА рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреИрд░рд╛рдореАрдЯрд░ рджрд┐рдП:
- реж - рдореЗрд░реА рдЖрдИ.рдбреА.
- 1 - рд░рдЪрдирд╛ рдЖрдИрдбреА
- 2 - рдЧреАрдд рдХрд╛ рд▓рд┐рдВрдХ
- 3 - рдмрд┐рдЯрд░реЗрдЯ?
- 4 - рдЕрд╡рдзрд┐
- 5 - рд▓реЗрдЦрдХ
- 6 - рдЧреАрдд рдХрд╛ рд╢реАрд░реНрд╖рдХ
- 7 - рдмрд╛рдЗрдЯреНрд╕ рдореЗрдВ рдЖрдХрд╛рд░?
- рдЕрдиреНрдп рдкреИрд░рд╛рдореАрдЯрд░ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИрдВред
рдСрдбрд┐рдпреЛ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдХреА рдПрдХ рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
рд╣рдо рд╕реНрд╡рд╛рдЧрдд рд╕реВрдЪреА рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдЕрдиреБрд░реЛрдз рдореЗрдВ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХрд┐рд╕ рд╣реЗрдбрд░ рдХреЛ рднреЗрдЬрддрд╛ рд╣реИ:
Request Headers: Accept:*/* Accept-Charset:windows-1251,utf-8;q=0.7,*;q=0.3 Accept-Encoding:gzip,deflate,sdch Accept-Language:ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4 Connection:keep-alive Content-Length:45 Content-Type:application/x-www-form-urlencoded Cookie:remixlang=0; remixseenads=2; audio_vol=100; remixdt=0;remixsid=************; remixflash=11.4.31 Host:vk.com Origin:http://vk.com Referer:http://vk.com/audio User-Agent:Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.94 Safari/537.4 X-Requested-With:XMLHttpRequest Form: Dataview URL encoded act:load_audios_silent al:1 gid:0 id:17738938
рдЖрдЗрдП рд╣рдорд╛рд░реЗ рдЕрдиреБрд░реЛрдз рдХреЛ рдЕрдиреБрдХрд░рдг рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ:
import requests as r def getAudio(): response = r.post(url = "http://vk.com/audio", data = { "act":"load_audios_silent", "al":"1", "gid":"0", "id":"17738938" } ) print response.content getAudio()
Request.post рдлрд╝рдВрдХреНрд╢рди url рдХреЗ рд▓рд┐рдП POST рдЕрдиреБрд░реЛрдз рдмрдирд╛рддрд╛ рд╣реИред рд╡рд╣ рдХрдИ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреА рд╣реИред рдпрд╣рд╛рдБ рдореБрдЦреНрдп рд╣реИрдВ:
- рд╣реЗрдбрд░ - рд╣реЗрдбрд░ рдХрд╛ рдПрдХ рд╢рдмреНрджрдХреЛрд╢ рдЬрд┐рд╕реЗ рд╣рдо рд╕рд░реНрд╡рд░ рдХреЛ рднреЗрдЬрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ
- data - рдбреЗрдЯрд╛ рдХрд╛ рдПрдХ рд╢рдмреНрджрдХреЛрд╢ рдЕрдиреБрд░реЛрдз рдореЗрдВ рдкреНрд░реЗрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛
рдлрд╝рдВрдХреНрд╢рди рд╣рдореЗрдВ рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдЧрд╛
<!--11055<!>audio.css,audio.js<!>0<!>6362<!>3<!>230b860567731c4875
рдкрд░рд┐рдгрд╛рдо рдЕрдиреБрдорд╛рдирд┐рдд рд╣реИ - рдЖрдЦрд┐рд░рдХрд╛рд░, рд╣рдордиреЗ рдпрд╣ рд╕рдВрдХреЗрдд рдирд╣реАрдВ рджрд┐рдпрд╛ рдХрд┐ рд╣рдо рдПрдХ рдЕрдзрд┐рдХреГрдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣реИрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХреБрдХреАрдЬрд╝ рдХреЛ рд╕рд░реНрд╡рд░ рд╕реЗ рдкрд╛рд╕ рдХрд░реЗрдВред рдЪрд▓реЛ рд╣рдорд╛рд░реЗ рдЕрдиреБрд░реЛрдз рдХреЛ рдереЛрдбрд╝рд╛ рдареАрдХ рдХрд░реЗрдВ:
import requests as r def getAudio(): response = r.post( "http://vk.com/audio", data = { 'act':"load_audios_silent", "al":"1", "gid":"0", "id":"17738938" }, headers = { "Cookie":"remixlang=0; remixseenads=2; remixdt=0; remixsid=**************; audio_vol=96; remixflash=11.4.31" } ) print response.content[0:1000] getAudio()
рдЕрдм рд╣рдореЗрдВ рд╡рд╣реА рдорд┐рд▓рддрд╛ рд╣реИ рдЬреЛ рд╣рдореЗрдВ рдЪрд╛рд╣рд┐рдПред
рд╕рдм рдареАрдХ рд╣реИред рд╣рдореЗрдВ рдЬреЛ рд╕реВрдЪреА рдорд┐рд▓реА рд╣реИред рдЕрдм рдЖрдкрдХреЛ рдЗрд╕реЗ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдЧреАрдд рдХреЛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдореИрдВрдиреЗ рдкрд░реЗрд╢рд╛рди рдирд╣реАрдВ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рдФрд░ рдмрд╕ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛:
рдпрд╣рд╛рдБ рдореБрдЦреНрдп рдХрд╛рд░реНрдп OneDownload () рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рд╡рд╣ рд╣реИ рдЬреЛ рдЧрд╛рдиреЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдорд╛рдирдХ рдлрд╝рдВрдХреНрд╢рди urllib.urlretrieve (url, file_path, ...) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдЙрд╕ рдбреЗрдЯрд╛ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╕рд░реНрд╡рд░ url рддрдХ рдкрд╣реБрдВрдЪрддреЗ рд╕рдордп рд╡рд╛рдкрд╕ рд▓реМрдЯрддрд╛ рд╣реИ рдФрд░ file_path рдкрд░ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдкрд░ рд▓рд┐рдЦрддрд╛ рд╣реИред
рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИ, рд╕рдм рдХреБрдЫ рдбрд╛рдЙрдирд▓реЛрдб рд╣реЛ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдзреАрд░реЗ-рдзреАрд░реЗ!
рд╣рдо рдЕрдкрдиреЗ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЛ рд╕рдорд╛рдирд╛рдВрддрд░ рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдРрд╕реЗ рдХрд╛рд░реНрдп рдЬрд┐рдиреНрд╣реЗрдВ рдореИрдВ рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛, рд╡реЗ рд╡рдирдбреЙрдХ рд╣реИрдВред рдПрдХ рд╕рдорд╛рдирд╛рдВрддрд░ рд╕рдЬреНрдЬрд╛рдХрд╛рд░ рдмрдирд╛рдПрдБ:
def Thread(f): def _inside(*a, **k): thr = threading.Thread(target = f, args = a, kwargs = k) thr.start() return _inside
рдкрд╛рдпрдерди рдореЗрдВ рдПрдХ рдбреЗрдХреЛрд░реЗрдЯрд░ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд╣реИ рдЬреЛ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗрддрд╛ рд╣реИ рдФрд░ рдХреБрдЫ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд░рддрд╛ рд╣реИред
рдпрд╣ рдбреЗрдХреЛрд░реЗрдЯрд░ рдмрд╕ рд╕реНрд╡реАрдХреГрдд рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдПрдХ рдЕрд▓рдЧ рдереНрд░реЗрдб рдореЗрдВ рдЪрд▓рд╛рддрд╛ рд╣реИред
рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ рдЬреЛрдбрд╝реЗрдВ - рдереНрд░реЗрдбреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ред рдЗрд╕ рдЪрд░ рдХреЛ рд╕реАрдзреЗ рдереНрд░реЗрдбреНрд╕ рд╕реЗ рдирд╣реАрдВ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдлрд╝рдВрдХреНрд╢рди рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ
рд╡реЗрддрди рд╡реГрджреНрдзрд┐, рдФрд░ рд░рд╕реАрдж:
alive_threads = 0 def inc(x):
рдЕрдм рдХреЛрдб рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХрд░реЗрдВред рдпрд╣рд╛рдБ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд╛ рдЕрдВрддрд┐рдо рд╕рдВрд╕реНрдХрд░рдг рд╣реИ:
рдЕрдм рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рд╕реВрддреНрд░реЛрдВ рдФрд░ рд╕рдВрдХрд▓рд┐рдд рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдпрд╣рд╛рдВ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
VKmusic#UPDрд╕рдВрдХрд▓рд┐рдд рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдПрдХ рдмрдЧ рдерд╛, рд╕рдВрдЧреАрдд рдХреЗрд╡рд▓ рдореЗрд░реЗ рдкреГрд╖реНрда рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд╕рд╣реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╕рдВрд╕реНрдХрд░рдг:
VKMusic