{"id":157925,"date":"2012-11-08T19:34:04","date_gmt":"2012-11-08T15:34:04","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=157925"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=157925","title":{"rendered":"<span class=\"post_title\">\u0421\u043a\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u0435 \u043c\u0443\u0437\u044b\u043a\u0430\u043b\u044c\u043d\u043e\u0439 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 vk.com<\/span>"},"content":{"rendered":"<div class=\"content html_format\"> \t\t\t\u041f\u0440\u0438\u0432\u0435\u0442, \u0445\u0430\u0431\u0440\u0430\u0445\u0430\u0431\u0440!<\/p>\n<p>  \u0420\u0435\u0448\u0438\u043b \u044f \u043a\u0430\u043a-\u0442\u043e \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u0441\u0432\u043e\u044e \u043c\u0443\u0437\u044b\u043a\u0430\u043b\u044c\u043d\u0443\u044e \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044e \u0438\u0437 vkontakte(\u0430 \u044d\u0442\u043e \u0431\u0435\u0437 \u043c\u0430\u043b\u043e\u0433\u043e 1000 \u043f\u0435\u0441\u0435\u043d). \u0421\u0432\u044f\u0437\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u0441 vk.api \u043d\u0435 \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0440\u0435\u0448\u0438\u043b <\/p>\n<p>  \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c python + \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 <a href=\"http:\/\/docs.python-requests.org\">request<\/a>. \u0427\u0442\u043e \u0438\u0437 \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c \u2014 \u043f\u043e\u0434 \u043a\u0430\u0442\u043e\u043c! <br \/>  <a name=\"habracut\"><\/a><br \/>  \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u0447\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442 \u043d\u0430\u0448 \u0431\u0440\u0430\u0443\u0437\u0435\u0440, \u043a\u043e\u0433\u0434\u0430 \u043c\u044b \u043e\u0431\u0440\u0430\u0449\u0430\u0435\u043c\u0441\u044f \u043a \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 \u0441\u0432\u043e\u0438\u0445 \u0430\u0443\u0434\u0438\u043e\u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u0432\u043a\u043e\u043d\u0442\u0430\u043a\u0442\u0435. \u041e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 (\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b Chrome, F12) \u0438 \u0437\u0430\u0445\u043e\u0434\u0438\u043c \u043d\u0430 <a href=\"http:\/\/vk.com\/audio\">vk.com\/audio<\/a>. \u041c\u044b \u043c\u043e\u0436\u0435\u043c \u0432\u0438\u0434\u0435\u0442\u044c \u0432\u0441\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u043e\u0432\u0435\u0440\u0448\u0430\u0435\u0442 \u0431\u0440\u0430\u0443\u0437\u0435\u0440:<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/cs304602.userapi.com\/v304602938\/4b4a\/85GYZBeR1cQ.jpg\" alt=\"image\"\/><\/p>\n<p>  \u0421\u043c\u044b\u0441\u043b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430 \u0442\u0430\u043a\u043e\u0432: <\/p>\n<p>  \u041f\u0435\u0440\u0432\u0430\u044f \u0441\u0442\u0440\u043e\u0447\u043a\u0430 \u2014 GET \u0437\u0430\u043f\u0440\u043e\u0441, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u043f\u043e\u0441\u044b\u043b\u0430\u0435\u043c \u043a \u0441\u0435\u0440\u0432\u0435\u0440\u0443 \u043f\u0440\u0438 \u043f\u0435\u0440\u0432\u043e\u043c \u0437\u0430\u0445\u043e\u0434\u0435 \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443. \u0412 \u043e\u0442\u0432\u0435\u0442\u0435 \u0441\u0435\u0440\u0432\u0435\u0440 \u043e\u0442\u0434\u0430\u0435\u0442 \u043d\u0430\u043c html \u043a\u043e\u0434 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b.<br \/>  \u0417\u0430\u0442\u0435\u043c \u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u043f\u043e\u0434\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u0432\u0441\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u044b: css, js \u0438 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f.<br \/>  \u0411\u043b\u0438\u0436\u0435 \u043a \u043a\u043e\u043d\u0446\u0443 \u0441\u043f\u0438\u0441\u043a\u0430 \u0432\u0438\u0434\u0438\u043c \u043d\u0435\u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0443\u044e \u0441\u0442\u0440\u043e\u0447\u043a\u0443: \u044d\u0442\u043e \u0437\u0430\u043f\u0440\u043e\u0441 \u0442\u0438\u043f\u0430 POST \u0441 \u0438\u043c\u0435\u043d\u0435\u043c audio. \u0421\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e, \u044d\u0442\u043e\u0442 \u0437\u0430\u043f\u0440\u043e\u0441 \u043f\u043e\u0441\u044b\u043b\u0430\u0435\u0442 javascript \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0441\u043f\u0438\u0441\u043a\u0430 \u0430\u0443\u0434\u0438\u043e\u0437\u0430\u043f\u0438\u0441\u0435\u0439. <br \/>  \u0412 \u043e\u0442\u0432\u0435\u0442\u0435 \u0441\u0435\u0440\u0432\u0435\u0440 \u043d\u0430\u043c \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0441\u0442\u0440\u043e\u0447\u043a\u0443 \u0442\u0438\u043f\u0430:<\/p>\n<pre><code class=\"xml\">11055&lt;!&gt;audio.css,audio.js&lt;!&gt;0&lt;!&gt;6362&lt;!&gt;0&lt;!&gt;{&quot;all&quot;:[   ['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'], ...<\/code><\/pre>\n<p>  \u0411\u0438\u043d\u0433\u043e! \u042d\u0442\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u0442\u043e \u0447\u0442\u043e \u043d\u0430\u043c \u0438 \u043d\u0430\u0434\u043e. \u0412 \u043e\u0442\u0432\u0435\u0442\u0435 \u0441\u0435\u0440\u0432\u0435\u0440 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043d\u0430\u043c JSON-\u0441\u043f\u0438\u0441\u043e\u043a \u0432\u0441\u0435\u0445 \u043d\u0430\u0448\u0438\u0445 \u043a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u0439 \u0438 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b:  <\/p>\n<ul>\n<li>0 \u2014 \u043c\u043e\u0439 id<\/li>\n<li>1 \u2014 id \u043a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u0438<\/li>\n<li>2 \u2014 \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 \u043a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u044e<\/li>\n<li>3 \u2014 \u0431\u0438\u0442\u0440\u0435\u0439\u0442?<\/li>\n<li>4 \u2014 \u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c<\/li>\n<li>5 \u2014 \u0430\u0432\u0442\u043e\u0440<\/li>\n<li>6 \u2014 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u0438<\/li>\n<li>7 \u2014 \u0440\u0430\u0437\u043c\u0435\u0440 \u0432 \u0431\u0430\u0439\u0442\u0430\u0445?<\/li>\n<li>\u041e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043d\u0435\u043f\u043e\u043d\u044f\u0442\u043d\u044b.<\/li>\n<\/ul>\n<h2>\u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0441\u043f\u0438\u0441\u043e\u043a \u0430\u0443\u0434\u0438\u043e\u0437\u0430\u043f\u0438\u0441\u0435\u0439<\/h2>\n<p>  \u041a\u0430\u043a \u0436\u0435 \u043d\u0430\u043c \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0436\u0435\u043b\u0430\u043d\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a? \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u043a\u0430\u043a\u0438\u0435 headers \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u0432 \u043d\u0430\u0448\u0435\u043c \u0437\u0430\u043f\u0440\u043e\u0441\u0435:<\/p>\n<pre><code>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  <\/code><\/pre>\n<p>  \u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0441\u044b\u043c\u0438\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430\u0448 \u0437\u0430\u043f\u0440\u043e\u0441:<\/p>\n<pre><code class=\"python\">import requests as r  def getAudio():     response = r.post(url = &quot;http:\/\/vk.com\/audio&quot;,            data = {                &quot;act&quot;:&quot;load_audios_silent&quot;,                 &quot;al&quot;:&quot;1&quot;,                 &quot;gid&quot;:&quot;0&quot;,                 &quot;id&quot;:&quot;17738938&quot;                 }            )     print response.content  getAudio()  <\/code><\/pre>\n<p>  \u0424\u0443\u043d\u043a\u0446\u0438\u044f request.post \u0441\u043e\u0437\u0434\u0430\u0435\u0442 POST \u0437\u0430\u043f\u0440\u043e\u0441 \u043a url. \u0415\u0439 \u043c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432. \u0412\u043e\u0442 \u0433\u043b\u0430\u0432\u043d\u044b\u0435 \u0438\u0437 \u043d\u0438\u0445:  <\/p>\n<ul>\n<li>headers \u2014 \u0441\u043b\u043e\u0432\u0430\u0440\u044c \u0445\u0438\u0434\u0435\u0440\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u044c \u0441\u0435\u0440\u0432\u0435\u0440\u0443<\/li>\n<li>data \u2014 \u0441\u043b\u043e\u0432\u0430\u0440\u044c \u0434\u0430\u043d\u043d\u044b\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0430\u0434\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u0432 \u0437\u0430\u043f\u0440\u043e\u0441\u0435<\/li>\n<\/ul>\n<p>  \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u043d\u0430\u043c \u0432\u044b\u0432\u0435\u0434\u0435\u0442   <\/p>\n<pre><code>&lt;!--11055&lt;!&gt;audio.css,audio.js&lt;!&gt;0&lt;!&gt;6362&lt;!&gt;3&lt;!&gt;230b860567731c4875<\/code><\/pre>\n<p>  \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0443\u0435\u043c \u2014 \u0432\u0435\u0434\u044c \u043c\u044b \u043d\u0438\u043a\u0430\u043a \u043d\u0435 \u0443\u043a\u0430\u0437\u0430\u043b\u0438 \u0447\u0442\u043e \u043c\u044b \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0430\u0434\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u0441\u0435\u0440\u0432\u0435\u0440\u0443 cookies. \u0418\u0441\u043f\u0440\u0430\u0432\u0438\u043c \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043d\u0430\u0448 \u0437\u0430\u043f\u0440\u043e\u0441:<\/p>\n<pre><code class=\"python\"> import requests as r  def getAudio():     response = r.post(                     &quot;http:\/\/vk.com\/audio&quot;,                     data = {                         'act':&quot;load_audios_silent&quot;,                         &quot;al&quot;:&quot;1&quot;,                         &quot;gid&quot;:&quot;0&quot;,                         &quot;id&quot;:&quot;17738938&quot;                             },                     headers = {                         &quot;Cookie&quot;:&quot;remixlang=0; remixseenads=2; remixdt=0; remixsid=**************; audio_vol=96; remixflash=11.4.31&quot;                                }                       )     print response.content[0:1000]  getAudio()  <\/code><\/pre>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0442\u043e \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e. <\/p>\n<p>  \u0425\u043e\u0440\u043e\u0448\u043e. \u0421\u043f\u0438\u0441\u043e\u043a \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438. \u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0430\u0434\u043e \u0435\u0433\u043e \u043e\u0442\u043f\u0430\u0440\u0441\u0438\u0442\u044c \u0438 \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u043a\u0430\u0436\u0434\u0443\u044e \u043f\u0435\u0441\u043d\u044e \u043f\u043e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438. \u042f \u0440\u0435\u0448\u0438\u043b \u043d\u0435 \u0437\u0430\u043c\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0442\u044c\u0441\u044f, \u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u044b\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f:<\/p>\n<pre><code class=\"python\">#-*-coding:cp1251-*- import requests as r import re import random as ran import os import urllib as ur  #\u0420\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u043d\u044b\u0435 \u0441\u0438\u043c\u0432\u043e\u043b\u044b \u0432 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f\u0445 \u043f\u0435\u0441\u0435\u043d: ALLOW_SYMBOLS = &quot; qwertyuiopasdfghjklzxcvbnm\u0439\u0446\u0443\u043a\u0435\u043d\u0433\u0448\u0449\u0437\u0445\u044a\u044d\u0436\u0434\u043b\u043e\u0440\u043f\u0430\u0432\u044b\u0444\u044f\u0447\u0441\u043c\u0438\u0442\u044c\u0431\u044e\u0419\u0426\u0423\u041a\u0415\u041d\u0413\u0428\u0429\u0417\u0425\u042a\u042d\u0416\u0414\u041b\u041e\u0420\u041f\u0410\u0412\u042b\u0424\u042f\u0427\u0421\u041c\u0418\u0422\u042c\u0411\u042e.,-()&quot; COOKIE = &quot;&quot;   #\u0417\u0434\u0435\u0441\u044c \u043d\u0430\u0434\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c cookies, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u044b \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442\u0435 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u0443.  def getAllowName(string):     &quot;&quot;&quot;\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 \u043f\u043e\u0434\u0441\u0442\u0440\u043e\u043a\u0443, \u0441\u043e\u0441\u0442\u043e\u044f\u0449\u0443\u044e \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u0437 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u043d\u044b\u0445 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432     ALLOW_SYMBOLS&quot;&quot;&quot;     s=''     for x in string.lower():         if x in ALLOW_SYMBOLS:             s += x     return s  def getRandomElement(arr, delete = False):     &quot;&quot;&quot;\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0440\u0430\u043d\u0434\u043e\u043c\u043d\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 arr. \u0415\u0441\u043b\u0438 delete = True, \u0442\u043e \u044d\u0442\u043e\u0442 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0443\u0434\u0430\u043b\u044f\u0435\u0442\u0441\u044f \u0438\u0437 \u043c\u0430\u0441\u0441\u0438\u0432\u0430.&quot;&quot;&quot;     index = ran.randrange(0, len(arr), 1)     value = arr[index]     if delete:         arr.remove(value)     return value  def getAudio():     &quot;&quot;&quot;\u0421 \u044d\u0442\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439 \u043c\u044b \u0443\u0436\u0435 \u0441\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u043b\u0438\u0441\u044c. \u0422\u043e\u043b\u044c\u043a\u043e \u0442\u0443\u0442 \u043e\u043d\u0430 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443     \u0440\u0430\u0437\u0431\u0438\u0432\u0430\u0435\u0442 \u043d\u0430 \u043c\u0430\u0441\u0441\u0438\u0432 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432&quot;&quot;&quot;     response = r.post(                     &quot;http:\/\/vk.com\/audio&quot;,                     data = {                         'act':&quot;load_audios_silent&quot;,                         &quot;al&quot;:&quot;1&quot;,                         &quot;gid&quot;:&quot;0&quot;,                         &quot;id&quot;:&quot;17738938&quot;                             },                     headers = {                         &quot;Cookie&quot;:COOKIE                                }                       )     i=0     pat = re.compile(r&quot;\\[.+?\\]&quot;)  #\u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0432\u0441\u0435\u043c \u043f\u043e\u0434\u0441\u0442\u0440\u043e\u043a\u0430\u043c \u0442\u0438\u043f\u0430 [.*]     return pat.findall(response.content) #\u0442\u0443\u0442 \u0438 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0440\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u0435  already_added = []  #\u0442\u0443\u0442 \u0431\u0443\u0434\u0435\u043c \u0445\u0440\u0430\u043d\u0438\u0442\u044c id \u043a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u0436\u0435 \u0441\u043a\u0430\u0447\u0430\u043d\u044b. pat = re.compile(r&quot;\\'(.+?)\\'&quot;)  #\u043f\u0430\u0442\u0442\u0435\u0440\u043d \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0432\u0441\u0435\u043c \u043f\u043e\u0434\u0441\u0442\u0440\u043e\u043a\u0430\u043c \u0432\u0438\u0434\u0430 '.*'  def OneDownload(x):     &quot;&quot;&quot;\u0414\u0435\u043b\u0430\u0435\u0442 \u041e\u0414\u041d\u0423 \u0437\u0430\u043a\u0430\u0447\u043a\u0443 \u043f\u0435\u0441\u043d\u0438, \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 (\u0442\u0438\u043f\u0430 ['...', '...', '...', ...]) \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442\u0441\u044f \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u043c     &quot;&quot;&quot;     global already_added     try:         elements = pat.findall(x) #\u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u043a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u0438         id, url, author, name = (elements[1], elements[2], elements[5], elements[6])          #\u043d\u0443\u0436\u043d\u044b\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 - id, url, author, name     except:         return     if id not in already_added: #\u0435\u0441\u043b\u0438 \u043c\u044b \u043d\u0435 \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u043b\u0438 \u043a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u044e         already_added.append(id)    #\u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0435\u0435 \u0432 \u0441\u043a\u0430\u0447\u0430\u043d\u043d\u044b\u0435     file_path = &quot;audio\/&quot;+getAllowName(author+&quot; - &quot;+name)+&quot;.mp3&quot; #\u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043f\u0443\u0442\u044c, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0431\u0443\u0434\u0435\u0442 \u0445\u0440\u0430\u043d\u0438\u0442\u044c\u0441\u044f \u044d\u0442\u0430 \u043a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u044f      with open(file_path, &quot;w&quot;):  #\u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043f\u0443\u0441\u0442\u043e\u0439 \u0444\u0430\u0439\u043b \u0441 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u043c \u043f\u0443\u0442\u0435\u043c         pass     ur.urlretrieve(url, file_path)  #\u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u043c \u0437\u0430\u043a\u0430\u0447\u043a\u0443     print name, &quot;downloaded&quot;      def getFirstNSongs(first=0, last = None):     &quot;&quot;&quot;\u0424\u0443\u043d\u043a\u0446\u0438\u044f, \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u043d\u043e\u043c\u0435\u0440 \u043f\u0435\u0440\u0432\u043e\u0439 \u043f\u0435\u0441\u043d\u0438, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043d\u0430\u0434\u043e \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u0438 \u043d\u043e\u043c\u0435\u0440 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439     \u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442 \u0437\u0430\u043a\u0430\u0447\u043a\u0443&quot;&quot;&quot;     if not os.path.exists(os.path.join(os.getcwd(), 'audio')):         #\u0435\u0441\u043b\u0438 \u043d\u0435\u0442 \u043f\u0430\u043f\u043a\u0438 audio \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u0435\u0435         os.mkdir('audio')     songs = getAudio()  #\u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u043f\u0435\u0441\u0435\u043d          #\u043e\u0431\u0440\u0435\u0437\u0430\u0435\u043c \u043c\u0430\u0441\u0441\u0438\u0432 \u043f\u0435\u0441\u0435\u043d, \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0438 \u0441 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u043c\u0438 first \u0438 last:     if last!=None:           songs = songs[first:last+1]     else:         songs = songs[first:]              for x in songs: #\u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u043d\u0443\u0436\u043d\u043e\u0439 \u043f\u0435\u0441\u043d\u0438         OneDownload(x)  #\u0441\u043a\u0430\u0447\u0438\u0432\u0430\u0435\u043c \u0435\u0435  getFirstNSongs(last = 10)  <\/code><\/pre>\n<p>  \u041e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u044f \u0437\u0434\u0435\u0441\u044c \u2014 OneDownload(). \u041f\u043e \u0441\u0443\u0442\u0438, \u0438\u043c\u0435\u043d\u043d\u043e \u043e\u043d\u0430 \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u0435\u0442 \u043f\u0435\u0441\u043d\u0438. \u0414\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u044d\u0442\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 urllib.urlretrieve(url, file_path, &#8230;). \u042d\u0442\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0441\u0435\u0440\u0432\u0435\u0440 \u043f\u0440\u0438 \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u0438 \u043a url \u0438 \u043f\u0438\u0448\u0435\u0442 \u0432 \u0444\u0430\u0439\u043b, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043d\u0430 \u043f\u0443\u0442\u0438 file_path.<\/p>\n<p>  \u0412\u0441\u0435 \u0445\u043e\u0440\u043e\u0448\u043e, \u0432\u0441\u0435 \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f, \u043d\u043e \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u043e!<\/p>\n<p>  \u041c\u043e\u0436\u0435\u043c \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0440\u0430\u0441\u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u0438\u0442\u044c \u043d\u0430\u0448 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c. \u0424\u0443\u043d\u043a\u0446\u0438\u0438 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0431\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e \u2014 \u044d\u0442\u043e OneDownload. \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0434\u0435\u043a\u043e\u0440\u0430\u0442\u043e\u0440 \u0440\u0430\u0441\u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u0438\u0432\u0430\u043d\u0438\u044f:<\/p>\n<pre><code class=\"python\"> def Thread(f):     def _inside(*a, **k):         thr = threading.Thread(target = f, args = a, kwargs = k)         thr.start()     return _inside  <\/code><\/pre>\n<p>  \u0414\u0435\u043a\u043e\u0440\u0430\u0442\u043e\u0440 \u0432 Python \u2014 \u044d\u0442\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430 \u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u043a\u0430\u043a\u0438\u0435-\u0442\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f.<br \/>  \u0414\u0430\u043d\u043d\u044b\u0439 \u0434\u0435\u043a\u043e\u0440\u0430\u0442\u043e\u0440 \u043f\u0440\u043e\u0441\u0442\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u043f\u0440\u0438\u043d\u044f\u0442\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u043c \u043f\u043e\u0442\u043e\u043a\u0435.<\/p>\n<p>  \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u044e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u2014 \u0447\u0438\u0441\u043b\u043e \u043f\u043e\u0442\u043e\u043a\u043e\u0432. \u041d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0438\u0437 Thread-\u043e\u0432 \u0438\u0437\u043c\u0435\u043d\u044f\u0442\u044c \u044d\u0442\u0443 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u0431\u0443\u0434\u0435\u0442 \u043d\u0435\u043b\u044c\u0437\u044f, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <\/p>\n<p>  \u0438\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442\u0430, \u0438 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f:<\/p>\n<pre><code class=\"python\"> alive_threads = 0 def inc(x):     #\u0438\u0437\u043c\u0435\u043d\u044f\u0435\u0442 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u0443\u044e     global alive_threads     alive_threads+=x     return alive_threads def get():     #\u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435     global alive_threads     return alive_threads  <\/code><\/pre>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u0432\u043d\u043e\u0441\u0438\u043c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u043a\u043e\u0434. \u0412\u043e\u0442 \u043a\u043e\u043d\u0435\u0447\u043d\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b:<\/p>\n<pre><code class=\"python\"> #-*-coding:cp1251-*- import requests as r import re import threading import time import random as ran import os import urllib as ur  THREADS_COUNT = 10 ALLOW_SYMBOLS = &quot; qwertyuiopasdfghjklzxcvbnm\u0439\u0446\u0443\u043a\u0435\u043d\u0433\u0448\u0449\u0437\u0445\u044a\u044d\u0436\u0434\u043b\u043e\u0440\u043f\u0430\u0432\u044b\u0444\u044f\u0447\u0441\u043c\u0438\u0442\u044c\u0431\u044e\u0419\u0426\u0423\u041a\u0415\u041d\u0413\u0428\u0429\u0417\u0425\u042a\u042d\u0416\u0414\u041b\u041e\u0420\u041f\u0410\u0412\u042b\u0424\u042f\u0427\u0421\u041c\u0418\u0422\u042c\u0411\u042e.,-()&quot; COOKIE = &quot;&quot; #\u0417\u0434\u0435\u0441\u044c \u0432\u0430\u0448 cookies  def getAllowName(string):     s=''     print string.lower()     for x in string.lower():         if x in ALLOW_SYMBOLS:             s += x     return s          def getRandomElement(arr, delete = False):     index = ran.randrange(0, len(arr), 1)     value = arr[index]     if delete:         arr.remove(value)     return value   alive_threads = 0 def inc(x):     global alive_threads     alive_threads+=x     return alive_threads def get():     global alive_threads     return alive_threads  def Thread(f):     def _inside(*a, **k):         thr = threading.Thread(target = f, args = a, kwargs = k)         thr.start()     return _inside   def getAudio():     response = r.post(                     &quot;http:\/\/vk.com\/audio&quot;,                     data = {                         'act':&quot;load_audios_silent&quot;,                         &quot;al&quot;:&quot;1&quot;,                         &quot;gid&quot;:&quot;0&quot;,                         &quot;id&quot;:&quot;17738938&quot;                             },                     headers = {                         &quot;Cookie&quot;:COOKIE                                }                       )     i=0     pat = re.compile(r&quot;\\[.+?\\]&quot;)     return pat.findall(response.content)   already_added = []  #\u0442\u0443\u0442 \u0431\u0443\u0434\u0435\u043c \u0445\u0440\u0430\u043d\u0438\u0442\u044c id \u043a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u0436\u0435 \u0441\u043a\u0430\u0447\u0430\u043d\u044b. pat = re.compile(r&quot;\\'(.+?)\\'&quot;)  #\u043f\u0430\u0442\u0442\u0435\u0440\u043d \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0432\u0441\u0435\u043c \u043f\u043e\u0434\u0441\u0442\u0440\u043e\u043a\u0430\u043c \u0432\u0438\u0434\u0430 '.*' count = 0  @Thread def OneDownload(x):     global already_added     inc(1)    #\u043a\u043e\u0433\u0434\u0430 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b\u0441\u044f \u043d\u043e\u0432\u044b\u0439 \u0442\u0440\u0435\u0434 - \u0438\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442\u0438\u0440\u0443\u0435\u043c \u0447\u0438\u0441\u043b\u043e \u0442\u0440\u0435\u0434\u043e\u0432     try:         elements = pat.findall(x)         id, url, author, name = (elements[1], elements[2], elements[5], elements[6])      except:         return     if id not in already_added:         already_added.append(id)     file_path = &quot;audio\/&quot;+getAllowName(author+&quot; - &quot;+name)+&quot;.mp3&quot;     with open(file_path, &quot;w&quot;):         pass     ur.urlretrieve(url, file_path)     inc(-1)     #\u0442\u0440\u0435\u0434 \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u043b\u0441\u044f - \u0434\u0435\u043a\u0440\u0435\u043c\u0435\u043d\u0442\u0438\u0440\u0443\u0435\u043c            def getFirstNSongs(a=0, N = None):     if not os.path.exists(os.path.join(os.getcwd(), 'audio')):         os.mkdir('audio')     songs = getAudio()     if N!=None:         songs = songs[a:N]     else:         songs = songs[a:]     previous = 0    #\u0442\u0443\u0442 \u0431\u0443\u0434\u0435\u043c \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0447\u0438\u0441\u043b\u043e \u0435\u0449\u0435 \u043d\u0435 \u0441\u043a\u0430\u0447\u0430\u043d\u043d\u044b\u0445 \u043f\u0435\u0441\u0435\u043d     cc=10     while (len(songs)&gt;0 and len(songs)!=previous) or (len(songs) == previous and cc&gt;0):         #\u043f\u043e\u043a\u0430 \u0447\u0438\u0441\u043b\u043e \u043f\u0435\u0441\u0435\u043d \u043d\u0435\u043f\u0443\u0441\u0442\u043e, \u0438\u043b\u0438 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043e\u0441\u0442\u0430\u0432\u0448\u0438\u0445\u0441\u044f \u043f\u0435\u0441\u0435\u043d \u043d\u0435 \u0438\u0437\u043c\u0435\u043d\u044f\u043b\u043e\u0441\u044c \u0432 \u043c\u0435\u043d\u0435\u0435 \u0447\u0435\u043c 10 \u0446\u0438\u043a\u043b\u0430\u0445         if previous != len(songs):             previous = len(songs)   #\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u0438\u0437\u043c\u0435\u043d\u0438\u043b\u043e\u0441\u044c \u043b\u0438 \u0447\u0438\u0441\u043b\u043e \u043f\u0435\u0441\u0435\u043d. \u0415\u0441\u043b\u0438 \u0434\u0430 - \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u0435\u043c             cc=10   #\u0447\u0438\u0441\u043b\u043e \u0448\u0430\u0433\u043e\u0432 - 10         else:             cc-=1   #\u0435\u0441\u043b\u0438 \u043d\u0435 \u0438\u0437\u043c\u0435\u043d\u0438\u043b\u043e\u0441\u044c, \u0443\u043c\u0435\u043d\u044c\u0448\u0430\u0435\u043c \u0447\u0438\u0441\u043b\u043e \u0448\u0430\u0433\u043e\u0432 \u043d\u0430 1. \u0415\u0441\u043b\u0438 \u043a\u043e\u043b-\u0432\u043e \u043f\u0435\u0441\u0435\u043d \u043d\u0435 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u0441\u044f \u0437\u0430 10 \u0448\u0430\u0433\u043e\u0432 \u043c\u044b \u0432\u044b\u0439\u0434\u0435\u043c \u0438\u0437 \u0446\u0438\u043a\u043b\u0430         print &quot;\u041e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u0441\u043a\u0430\u0447\u0430\u0442\u044c&quot;, len(songs), &quot;\u0427\u0438\u0441\u043b\u043e \u043d\u0438\u0442\u0435\u0439&quot;, alive_threads         while alive_threads&lt;THREADS_COUNT:  #\u043f\u043e\u043a\u0430 \u043c\u043e\u0436\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0435 \u0442\u0440\u0435\u0434\u044b             x = getRandomElement(songs, delete = True)  #\u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0440\u0430\u043d\u0434\u043e\u043c\u043d\u0443\u044e \u043f\u0435\u0441\u043d\u044e, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043d\u0430\u0434\u043e \u0441\u043a\u0430\u0447\u0430\u0442\u044c             try:                 OneDownload(x)  #\u043f\u044b\u0442\u0430\u0435\u043c\u0441\u044f \u0441\u043a\u0430\u0447\u0430\u0442\u044c             except:                 songs.append(x) #\u0435\u0441\u043b\u0438 \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c - \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c \u043d\u0430\u0437\u0430\u0434.         while alive_threads&gt;=THREADS_COUNT:             time.sleep(10)  #\u0435\u0441\u043b\u0438 \u043d\u0435 \u043c\u043e\u0436\u0435\u043c \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u043d\u043e\u0432\u044b\u0435 \u0442\u0440\u0435\u0434\u044b - \u0441\u043f\u0438\u043c 10 \u0441\u0435\u043a\u0443\u043d\u0434.                getFirstNSongs(N=3) #\u0441\u043a\u0430\u0447\u0438\u0432\u0430\u0435\u043c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u0435\u0440\u0432\u044b\u0435 3 \u043f\u0435\u0441\u043d\u0438  <\/code><\/pre>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u0432\u0441\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442. <\/p>\n<p>  \u0418\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0438 \u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e \u043c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u043f\u043e \u044d\u0442\u043e\u0439 \u0441\u0441\u044b\u043b\u043a\u0435:<\/p>\n<p>  <a href=\"http:\/\/yadi.sk\/d\/B0My7rdI0cORJ\">VKmusic<\/a> \t\t\t \t\t\t<\/p>\n<div class=\"clear\"><\/div>\n<\/p><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"http:\/\/habrahabr.ru\/post\/157925\/\"> http:\/\/habrahabr.ru\/post\/157925\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div class=\"content html_format\"> \t\t\t\u041f\u0440\u0438\u0432\u0435\u0442, \u0445\u0430\u0431\u0440\u0430\u0445\u0430\u0431\u0440!<\/p>\n<p>  \u0420\u0435\u0448\u0438\u043b \u044f \u043a\u0430\u043a-\u0442\u043e \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u0441\u0432\u043e\u044e \u043c\u0443\u0437\u044b\u043a\u0430\u043b\u044c\u043d\u0443\u044e \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044e \u0438\u0437 vkontakte(\u0430 \u044d\u0442\u043e \u0431\u0435\u0437 \u043c\u0430\u043b\u043e\u0433\u043e 1000 \u043f\u0435\u0441\u0435\u043d). \u0421\u0432\u044f\u0437\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u0441 vk.api \u043d\u0435 \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0440\u0435\u0448\u0438\u043b <\/p>\n<p>  \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c python + \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 <a href=\"http:\/\/docs.python-requests.org\">request<\/a>. \u0427\u0442\u043e \u0438\u0437 \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c \u2014 \u043f\u043e\u0434 \u043a\u0430\u0442\u043e\u043c!   <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-157925","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/157925","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=157925"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/157925\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=157925"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=157925"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=157925"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}