{"id":307386,"date":"2020-07-23T15:00:41","date_gmt":"2020-07-23T15:00:41","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=307386"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=307386","title":{"rendered":"\u041a\u0430\u043a \u043f\u0440\u043e\u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0440\u044b\u043d\u043e\u043a \u0444\u043e\u0442\u043e\u0441\u0442\u0443\u0434\u0438\u0439 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Python (1\/3). \u041f\u0430\u0440\u0441\u0438\u043d\u0433 \u0434\u0430\u043d\u043d\u044b\u0445"},"content":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\" data-io-article-url=\"https:\/\/habr.com\/ru\/post\/504900\/\">\u0412 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435 \u043e\u0433\u0440\u043e\u043c\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445. \u041f\u0440\u0438 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u043c \u0441\u0431\u043e\u0440\u0435 \u0438 \u0430\u043d\u0430\u043b\u0438\u0437\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043c\u043e\u0436\u043d\u043e \u0440\u0435\u0448\u0438\u0442\u044c \u0432\u0430\u0436\u043d\u044b\u0435 \u0431\u0438\u0437\u043d\u0435\u0441-\u0437\u0430\u0434\u0430\u0447\u0438. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0441\u0442\u043e\u0438\u0442 \u043b\u0438 \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u0441\u0432\u043e\u0439 \u0431\u0438\u0437\u043d\u0435\u0441?<\/p>\n<p>  \u0421 \u0442\u0430\u043a\u0438\u043c \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u043c \u043a\u043e \u043c\u043d\u0435 \u043e\u0431\u0440\u0430\u0442\u0438\u043b\u0438\u0441\u044c \u043a\u043b\u0438\u0435\u043d\u0442\u044b, \u0436\u0435\u043b\u0430\u044e\u0449\u0438\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0443 \u0440\u044b\u043d\u043a\u0430 \u0443\u0441\u043b\u0443\u0433 \u0444\u043e\u0442\u043e\u0441\u0442\u0443\u0434\u0438\u0439. \u0414\u043b\u044f \u043d\u0438\u0445 \u0431\u044b\u043b\u043e \u0432\u0430\u0436\u043d\u043e \u043f\u043e\u043d\u044f\u0442\u044c: \u0441\u0442\u043e\u0438\u0442 \u043b\u0438 \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0442\u044c \u0444\u043e\u0442\u043e\u0441\u0442\u0443\u0434\u0438\u044e, \u0433\u0434\u0435 \u043e\u0442\u0440\u044b\u0442\u044c, \u043a\u0430\u043a\u0430\u044f \u043f\u043b\u043e\u0449\u0430\u0434\u044c \u043f\u043e\u043c\u0435\u0449\u0435\u043d\u0438\u044f, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u043b\u043e\u0432 \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u0432\u043d\u0430\u0447\u0430\u043b\u0435, \u0432 \u043a\u0430\u043a\u043e\u0439 \u043c\u0435\u0441\u044f\u0446 \u043b\u0443\u0447\u0448\u0435 \u0441\u0442\u0430\u0440\u0442\u043e\u0432\u0430\u0442\u044c \u0438 \u043c\u043d\u043e\u0433\u0438\u0435 \u0434\u0440\u0443\u0433\u0438\u0435 \u0432\u043e\u043f\u0440\u043e\u0441\u044b.<\/p>\n<p>  \u041f\u043e \u0438\u0442\u043e\u0433\u0443 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u0441\u0435\u0440\u0438\u044e \u0441\u0442\u0430\u0442\u0435\u0439 \u0441 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u044b\u043c \u043f\u043e\u044d\u0442\u0430\u043f\u043d\u044b\u043c \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u043c \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u0445 \u0437\u0430\u0434\u0430\u0447, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0438 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0445 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432. <\/p>\n<p>  \u0412 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435, \u043f\u0435\u0440\u0432\u043e\u0439 \u0438\u0437 \u0442\u0440\u0435\u0445, \u043e\u043f\u0438\u0448\u0443 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043f\u0430\u0440\u0441\u0438\u043d\u0433\u0430 \u043d\u0430 Python.<br \/>  \u0412\u043e \u0432\u0442\u043e\u0440\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043e\u043f\u0438\u0448\u0443 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043f\u0430\u0440\u0441\u0438\u043d\u0433\u0430 \u0441 \u0431\u0430\u0437\u043e\u0439 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445.<br \/>  \u0412 \u0442\u0440\u0435\u0442\u044c\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u044e \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0441\u043e\u0431\u0440\u0430\u043d\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u043e\u0442\u0432\u0435\u0442\u044b \u043d\u0430 \u0432\u043e\u043f\u0440\u043e\u0441\u044b \u043a\u043b\u0438\u0435\u043d\u0442\u0430, \u0436\u0435\u043b\u0430\u044e\u0449\u0435\u0433\u043e \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u0444\u043e\u0442\u043e\u0441\u0442\u0443\u0434\u0438\u044e.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/me\/qf\/v6\/meqfv6mbrxsonbgf5p5rwploqqa.jpeg\"><br \/>  <a name=\"habracut\"><\/a><\/p>\n<p>  \u0412 \u0445\u043e\u0434\u0435 \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0444\u043e\u0442\u043e\u0441\u0442\u0443\u0434\u0438\u0439 \u0441\u0444\u043e\u0440\u043c\u0443\u043b\u0438\u0440\u043e\u0432\u0430\u043b \u043e\u0431\u0449\u0443\u044e \u0441\u0445\u0435\u043c\u0443 \u0438\u0445 \u0440\u0430\u0431\u043e\u0442\u044b:   <\/p>\n<ul>\n<li>\u043e\u043f\u0438\u0441\u0430\u0442\u044c \u0441\u0432\u043e\u0438 \u0443\u0441\u043b\u0443\u0433\u0438 \u043d\u0430 \u0441\u0430\u0439\u0442\u0435;<\/li>\n<li>\u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0441\u0435\u0440\u0432\u0438\u0441 \u0431\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0437\u0430\u043b\u043e\u0432 \u0447\u0435\u0440\u0435\u0437 \u0441\u0430\u0439\u0442 \u0438\u043b\u0438 \u043f\u043e \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0443;<\/li>\n<li>\u0441\u043e\u043e\u0431\u0449\u0438\u0442\u044c \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u044b;<\/li>\n<li>\u043f\u0440\u0438\u043d\u044f\u0442\u044c \u043f\u043e\u0441\u0435\u0442\u0438\u0442\u0435\u043b\u0435\u0439 \u0432 \u0437\u0430\u0431\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f.<\/li>\n<\/ul>\n<h3>\u041f\u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0437\u0430\u0434\u0430\u0447\u0438<\/h3>\n<p>  \u041e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430 \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430: \u043f\u0440\u043e\u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0440\u044b\u043d\u043e\u043a \u0443\u0441\u043b\u0443\u0433 \u0444\u043e\u0442\u043e\u0441\u0442\u0443\u0434\u0438\u0439 \u041c\u043e\u0441\u043a\u0432\u044b. <br \/>  \u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u043d\u044f\u0442\u044c \u043a\u0430\u043a\u0438\u0435 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u0435\u0441\u0442\u044c \u043d\u0430 \u0440\u044b\u043d\u043a\u0435 \u0438 \u043a\u0430\u043a \u043e\u043d\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442.<\/p>\n<p>  \u0421\u0430\u043c\u044b\u0439 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u043d\u044b\u0439 \u0441\u0430\u0439\u0442-\u0430\u0433\u0440\u0435\u0433\u0430\u0442\u043e\u0440 \u0444\u043e\u0442\u043e\u0441\u0442\u0443\u0434\u0438\u0439: <a href=\"https:\/\/www.studiorent.ru\/\" rel=\"nofollow\">Studiorent<\/a>. \u041d\u0430 \u043d\u0435\u043c \u0432\u0438\u0434\u0438\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0439, \u0438\u0445 \u0441\u0430\u0439\u0442\u044b, \u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0438, \u0446\u0435\u043d\u044b \u0438 \u043f\u0440\u043e\u0447\u0443\u044e \u043e\u0431\u0449\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e.<\/p>\n<p>  \u041d\u0430 \u0441\u0430\u0439\u0442\u0435 studiorent \u043c\u044b \u0443\u0432\u0438\u0434\u0435\u043b\u0438 \u0432\u0430\u0436\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0440\u044b\u043d\u043e\u0447\u043d\u043e\u0439 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438: \u043a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u044c \u0431\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u0421\u043e\u0431\u0440\u0430\u0432 \u0438 \u043f\u0440\u043e\u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0432 \u044d\u0442\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u0443 \u0440\u0430\u0437\u043d\u044b\u0445 \u0444\u043e\u0442\u043e\u0441\u0442\u0443\u0434\u0438\u0439 \u0441\u043c\u043e\u0436\u0435\u043c \u043e\u0442\u0432\u0435\u0442\u0438\u0442\u044c \u043d\u0430 \u043e\u0433\u0440\u043e\u043c\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0432\u0430\u0436\u043d\u044b\u0445 \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u0432:  <\/p>\n<ul>\n<li>\u043a\u0430\u043a\u043e\u0432\u0430 \u0441\u0435\u0437\u043e\u043d\u043d\u043e\u0441\u0442\u044c \u0431\u0438\u0437\u043d\u0435\u0441\u0430; <\/li>\n<li>\u043a\u0430\u043a\u043e\u0432\u0430 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u0438\u043c\u0435\u044e\u0449\u0438\u0445\u0441\u044f \u0444\u043e\u0442\u043e\u0441\u0442\u0443\u0434\u0438\u0439; <\/li>\n<li>\u0432 \u043a\u0430\u043a\u0438\u0435 \u0434\u043d\u0438 \u043d\u0435\u0434\u0435\u043b\u0438 \u0431\u0440\u043e\u043d\u0438\u0440\u0443\u044e\u0442 \u0447\u0430\u0449\u0435 \u0438 \u043d\u0430 \u0441\u043a\u043e\u043b\u044c\u043a\u043e; <\/li>\n<li>\u043a\u0430\u043a\u043e\u0439 \u0434\u043e\u0445\u043e\u0434 \u0443 \u0444\u043e\u0442\u043e\u0441\u0442\u0443\u0434\u0438\u0439; <\/li>\n<li>\u043a\u0430\u043a\u043e\u0432\u0430 \u0447\u0430\u0441\u043e\u0432\u0430\u044f \u0441\u0442\u0430\u0432\u043a\u0430 \u0430\u0440\u0435\u043d\u0434\u044b \u0444\u043e\u0442\u043e\u0441\u0442\u0443\u0434\u0438\u0438; <\/li>\n<li>\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u043b\u043e\u0432 \u0443 \u0444\u043e\u0442\u043e\u0441\u0442\u0443\u0434\u0438\u0439 \u0438 \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0438\u0445 \u0431\u044b\u043b\u043e \u043f\u0440\u0438 \u043e\u0442\u043a\u0440\u044b\u0442\u0438\u0438; <\/li>\n<li>\u043a\u0430\u043a \u0432\u043b\u0438\u044f\u0435\u0442 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0437\u0430\u043b\u043e\u0432 \u043d\u0430 \u0432\u0435\u043b\u0438\u0447\u0438\u043d\u0443 \u0434\u043e\u0445\u043e\u0434\u0430 \u0441 \u043e\u0434\u043d\u043e\u0433\u043e \u0437\u0430\u043b\u0430; <\/li>\n<li>\u043a\u0430\u043a\u043e\u0432\u0430 \u043f\u043b\u043e\u0449\u0430\u0434\u044c \u0437\u0430\u043b\u043e\u0432 <\/li>\n<li>\u0438 \u043c\u043d\u043e\u0433\u0438\u0435 \u0434\u0440\u0443\u0433\u0438\u0435. <\/li>\n<\/ul>\n<p>  \u041f\u0435\u0440\u0432\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430 \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u0430: \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043f\u0430\u0440\u0441\u0438\u043d\u0433, \u0441\u043e\u0431\u0438\u0440\u0430\u044e\u0449\u0438\u0439 \u0434\u0430\u043d\u043d\u044b\u0435 \u043a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u0435\u0439 \u0431\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0440\u0430\u0437\u043d\u044b\u0445 \u0444\u043e\u0442\u043e\u0441\u0442\u0443\u0434\u0438\u0439.<\/p>\n<h3>\u0427\u0442\u043e \u0431\u0443\u0434\u0435\u043c \u043f\u0430\u0440\u0441\u0438\u0442\u044c?<\/h3>\n<p>  \u041f\u0440\u0438 \u0432\u043d\u0438\u043c\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u043c \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u0438\u0438 \u0441\u0430\u0439\u0442\u043e\u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u0444\u043e\u0442\u043e\u0441\u0442\u0443\u0434\u0438\u0439, \u0432\u0438\u0434\u0438\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0441\u0435\u0440\u0432\u0438\u0441\u044b \u0431\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f:  <\/p>\n<ol>\n<li>Google-\u041a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u044c; <\/li>\n<li>\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 <a href=\"https:\/\/appevent.ru\/\" rel=\"nofollow\">AppEvent<\/a>; <\/li>\n<li>\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 <a href=\"https:\/\/ugoloc.ru\/\" rel=\"nofollow\">Ugoloc<\/a>; <\/li>\n<li>\u0441\u0430\u043c\u043e\u043f\u0438\u0441\u043d\u044b\u0435 \u043a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u0438 \u0431\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f (<a href=\"http:\/\/mimika.moscow\/bronirovanie\" rel=\"nofollow\">\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440<\/a>); <\/li>\n<li>\u0437\u0430\u043f\u0438\u0441\u044c \u043f\u043e \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0443 \u0441 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435\u043c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u0431\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u043d\u0430 \u0441\u0430\u0439\u0442\u0435.<\/li>\n<\/ol>\n<p>  \u0414\u043b\u044f \u043f\u0430\u0440\u0441\u0438\u043d\u0433\u0430 \u0441\u0430\u043c\u043e\u043f\u0438\u0441\u043d\u044b\u0445 \u043a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u0435\u0439 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u0434 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0438\u0437 \u043d\u0438\u0445. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0435 \u0431\u0443\u0434\u0435\u043c \u0442\u0440\u0430\u0442\u0438\u0442\u044c \u043d\u0430 \u044d\u0442\u043e \u0432\u0440\u0435\u043c\u044f.<\/p>\n<p>  AppEvent \u043d\u0435\u0443\u0434\u043e\u0431\u0435\u043d \u0434\u043b\u044f \u043f\u0430\u0440\u0441\u0438\u043d\u0433\u0430. \u0412 \u043d\u0435\u043c \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u0431\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u0432 \u043f\u0440\u043e\u0448\u043b\u043e\u043c. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 AppEvent \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0430\u0440\u0441\u0438\u0442\u044c \u0435\u0436\u0435\u0434\u043d\u0435\u0432\u043d\u043e, \u0447\u0442\u043e \u0441\u043e\u0437\u0434\u0430\u0435\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0435 \u043d\u0435\u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430, \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a: \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c \u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0441\u0431\u043e\u0440 \u0434\u0430\u043d\u043d\u044b\u0445 (\u0431\u043e\u043b\u0435\u0435 \u0433\u043e\u0434\u0430) \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e\u0439 \u043a\u0430\u0440\u0442\u0438\u043d\u044b \u0440\u044b\u043d\u043a\u0430, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u0441\u0435\u0440\u0432\u0435\u0440 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043e\u0431\u043b\u0430\u0447\u043d\u044b\u0439) \u0441 \u0435\u0436\u0435\u0434\u043d\u0435\u0432\u043d\u044b\u043c \u0437\u0430\u043f\u0443\u0441\u043a\u043e\u043c \u043f\u0430\u0440\u0441\u0435\u0440\u0430.<\/p>\n<p>  \u0421 Google-\u041a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u0435\u043c \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u0431\u044b\u043b\u043e \u043e\u043f\u0430\u0441\u0435\u043d\u0438\u0435 \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u0430\u0440\u0441\u0435\u0440\u0430 \u0441\u0430\u043c\u0438\u043c Google&#8217;\u043e\u043c. \u0415\u0441\u0442\u044c \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c, \u0447\u0442\u043e \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u043b\u0430\u0442\u043d\u044b\u0435 proxy-\u0441\u0435\u0440\u0432\u0438\u0441\u044b (<a href=\"https:\/\/luminati.io\/?hl=ru\" rel=\"nofollow\">\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440<\/a>), \u0430 \u044d\u0442\u043e \u0443\u0441\u043b\u043e\u0436\u043d\u044f\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0443 \u043f\u0430\u0440\u0441\u0435\u0440\u0430 \u0438 \u0434\u0435\u043b\u0430\u0435\u0442 \u0435\u0435 \u0434\u043e\u0440\u043e\u0436\u0435.<\/p>\n<p>  \u0421\u0435\u0440\u0432\u0438\u0441 Ugoloc \u043f\u043e\u043a\u0430\u0437\u0430\u043b\u0441\u044f \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u044b\u043c \u0434\u043b\u044f \u043f\u0430\u0440\u0441\u0438\u043d\u0433\u0430, \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u043c\u0443 \u0441\u0440\u043e\u043a\u0443 \u0436\u0438\u0437\u043d\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 (\u0441 2015 \u0433\u043e\u0434\u0430) \u0438 \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u043c\u0443 \u0447\u0438\u0441\u043b\u0443 \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0432 \u043d\u0435\u043c \u0444\u043e\u0442\u043e\u0441\u0442\u0443\u0434\u0438\u0439 (84 \u043d\u0430 \u043c\u043e\u043c\u0435\u043d\u0442 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0441\u0442\u0430\u0442\u044c\u0438).<\/p>\n<p>  \u041b\u0435\u0433\u0447\u0435 \u0432\u0441\u0435\u0433\u043e \u0431\u0443\u0434\u0435\u0442 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043f\u0430\u0440\u0441\u0438\u043d\u0433 \u0441\u0435\u0440\u0432\u0438\u0441\u0430 Ugoloc, \u0442.\u043a.:   <\/p>\n<ul>\n<li>\u0441\u043c\u043e\u0436\u0435\u043c \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u043a\u043e \u0432\u0441\u0435\u0439 \u0438\u0441\u0442\u043e\u0440\u0438\u0438 \u0431\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u0421\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e, \u043c\u043e\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u043f\u0430\u0440\u0441\u0438\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043e \u043c\u0435\u0440\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438; <\/li>\n<li>\u043d\u0435 \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c proxy. \u0417\u043d\u0430\u0447\u0438\u0442, \u0441\u043c\u043e\u0436\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u044b\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 (urllib);<\/li>\n<li>\u043d\u0430 \u0441\u0435\u0440\u0432\u0438\u0441\u0435 \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043e \u043e\u043a\u043e\u043b\u043e \u0442\u0440\u0435\u0442\u0438 \u0432\u0441\u0435\u0433\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0444\u043e\u0442\u043e\u0441\u0442\u0443\u0434\u0438\u0439 \u041c\u043e\u0441\u043a\u0432\u044b. \u0421\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e, \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0434\u043e\u0441\u0442\u043e\u0432\u0435\u0440\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438 \u0440\u044b\u043d\u043a\u0430.<\/li>\n<\/ul>\n<h3>\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0441\u0430\u0439\u0442\u0430<\/h3>\n<p>  \u041f\u043e\u043b\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u0444\u043e\u0442\u043e\u0441\u0442\u0443\u0434\u0438\u0439 \u0441\u0441\u044b\u043b\u043a\u0430\u043c\u0438 \u043d\u0430 \u0438\u0445 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u043d\u0430 <a href=\"https:\/\/ugoloc.ru\/studios\" rel=\"nofollow\">\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435<\/a>. <br \/>  \u041d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 \u043a\u0430\u0436\u0434\u043e\u0439 <a href=\"https:\/\/ugoloc.ru\/studios\/show\/7\" rel=\"nofollow\">\u0444\u043e\u0442\u043e\u0441\u0442\u0443\u0434\u0438\u0438<\/a> \u043c\u043e\u0436\u0435\u043c \u043d\u0430\u0439\u0442\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043e \u043c\u0435\u0442\u0440\u0430\u0436\u0443 \u0441\u0442\u0443\u0434\u0438\u0438, \u0432\u044b\u0441\u043e\u0442\u0435 \u043f\u043e\u0442\u043e\u043b\u043a\u043e\u0432, \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0443 \u0437\u0430\u043b\u043e\u0432, \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u043c\u0443 \u043e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u044e \u0438 \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u043a\u0430\u0436\u0434\u044b\u0439 \u0437\u0430\u043b. <br \/>  \u041d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 <a href=\"https:\/\/ugoloc.ru\/studios\/hall\/975\" rel=\"nofollow\">\u0437\u0430\u043b\u0430<\/a> \u0435\u0441\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043e \u043c\u0435\u0442\u0440\u0430\u0436\u0443 \u0437\u0430\u043b\u0430, \u0432\u044b\u0441\u043e\u0442\u0435 \u043f\u043e\u0442\u043e\u043b\u043a\u043e\u0432, \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u043c\u0443 \u0441\u0440\u043e\u043a \u0431\u0440\u043e\u043d\u0438 \u0438 <a href=\"https:\/\/ugoloc.ru\/studios\/booking\/975\" rel=\"nofollow\">\u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 \u043a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u044c \u0431\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f<\/a>. <\/p>\n<p>  \u0421\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u0441\u0442\u0443\u0434\u0438\u0438 \u0441\u0442\u0440\u043e\u0438\u0442\u0441\u044f \u043f\u043e \u0444\u043e\u0440\u043c\u0435: <a href=\"https:\/\/ugoloc.ru\/studios\/show\/\" rel=\"nofollow\">ugoloc.ru\/studios\/show<\/a><i>\/id_\u0441\u0442\u0443\u0434\u0438\u0438<\/i><br \/>  \u0421\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u0437\u0430\u043b: <a href=\"https:\/\/ugoloc.ru\/studios\/hall\/\" rel=\"nofollow\">ugoloc.ru\/studios\/hall<\/a><i>\/id_\u0437\u0430\u043b\u0430<\/i><br \/>  \u0421\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u044c \u0431\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f: <a href=\"https:\/\/ugoloc.ru\/studios\/booking\/\" rel=\"nofollow\">ugoloc.ru\/studios\/booking<\/a><i>\/id_\u0437\u0430\u043b\u0430<\/i><\/p>\n<h3>\u042d\u0442\u0430\u043f\u044b \u043f\u0430\u0440\u0441\u0438\u043d\u0433\u0430:<\/h3>\n<p>  <\/p>\n<ol>\n<li>\u0432\u044b\u0433\u0440\u0443\u0437\u043a\u0430 \u0441\u043f\u0438\u0441\u043a\u0430 \u0444\u043e\u0442\u043e\u0441\u0442\u0443\u0434\u0438\u0439;<\/li>\n<li>\u0432\u044b\u0433\u0440\u0443\u0437\u043a\u0430 \u0441\u043f\u0438\u0441\u043a\u0430 \u0437\u0430\u043b\u043e\u0432;<\/li>\n<li>\u0432\u044b\u0433\u0440\u0443\u0437\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0431\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0437\u0430 \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u0443\u044e \u043d\u0435\u0434\u0435\u043b\u044e;<\/li>\n<li>\u0432\u044b\u0433\u0440\u0443\u0437\u043a\u0430 \u0438\u0441\u0442\u043e\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0431\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f;<\/li>\n<li>\u0432\u044b\u0433\u0440\u0443\u0437\u043a\u0430 \u0431\u0443\u0434\u0443\u0449\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 <\/li>\n<li>\u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u0430 \u0432\u044b\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u044b\u0445 json-\u0434\u0430\u043d\u043d\u044b\u0445<\/li>\n<\/ol>\n<h3>1. \u0412\u044b\u0433\u0440\u0443\u0437\u043a\u0430 \u0441\u043f\u0438\u0441\u043a\u0430 \u0444\u043e\u0442\u043e\u0441\u0442\u0443\u0434\u0438\u0439<\/h3>\n<p>  \u041a\u0430\u043a \u0432\u044b\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a \u0444\u043e\u0442\u043e\u0441\u0442\u0443\u0434\u0438\u0439?<br \/>  \u041f\u043e\u043b\u0433\u043e\u0434\u0430 \u043d\u0430\u0437\u0430\u0434 \u0441\u043f\u0438\u0441\u043e\u043a \u0444\u043e\u0442\u043e\u0441\u0442\u0443\u0434\u0438\u0439 \u043d\u0430 <a href=\"https:\/\/ugoloc.ru\/studios\" rel=\"nofollow\">\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435<\/a> \u0432\u044b\u0433\u0440\u0443\u0436\u0430\u043b\u0441\u044f \u043a\u0430\u043a json-\u0444\u0430\u0439\u043b. \u0415\u0441\u043b\u0438 \u0432\u044b \u043f\u0435\u0440\u0432\u044b\u0439 \u0440\u0430\u0437 \u0441\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u0435\u0442\u0435\u0441\u044c \u0441 \u0430\u043d\u0430\u043b\u0438\u0437\u043e\u043c \u0440\u0430\u0431\u043e\u0442\u044b \u0441\u0430\u0439\u0442\u0430, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435 json \u0444\u0430\u0439\u043b\u043e\u0432 \u043c\u043e\u0436\u043d\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c: F12 -&gt; \u00abNetwork\u00bb -&gt; \u00abJS\u00bb -&gt; \u0432\u044b\u0431\u043e\u0440 \u043d\u0443\u0436\u043d\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430 -&gt; \u00abResponse\u00bb. <\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/uv\/xg\/ks\/uvxgks7ocfxhkszjp5-cy6qejz0.png\"><\/p>\n<p>  \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u043b \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 \u0441\u043f\u0438\u0441\u043e\u043a \u0444\u043e\u0442\u043e\u0441\u0442\u0443\u0434\u0438\u0439: <a href=\"https:\/\/ugoloc.ru\/studios\/list.json\" rel=\"nofollow\">https:\/\/ugoloc.ru\/studios\/list.json<\/a><\/p>\n<p>  \u0414\u043b\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 <a href=\"https:\/\/docs.python.org\/3\/library\/urllib.html\" rel=\"nofollow\">urllib<\/a>.  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u0417\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u043c \u043f\u043e\u043b\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043e \u0441\u043f\u0438\u0441\u043a\u0443 \u0444\u043e\u0442\u043e\u0441\u0442\u0443\u0434\u0438\u0439<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"python\">url = 'https:\/\/ugoloc.ru\/studios\/list.json' json_data = urllib.request.urlopen(url).read().decode() <\/code><\/pre>\n<p>  <\/div>\n<\/p><\/div>\n<p>  \u041f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0441\u0442\u0440\u043e\u043a\u043e\u0432\u044b\u0439 \u0444\u043e\u0440\u043c\u0430\u0442 json-\u0434\u0430\u043d\u043d\u044b\u0445. \u0414\u043b\u044f \u0435\u0433\u043e \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 <a href=\"https:\/\/docs.python.org\/3\/library\/json.html\" rel=\"nofollow\">json<\/a>.  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u0421\u043f\u0438\u0441\u043e\u043a \u0444\u043e\u0442\u043e\u0441\u0442\u0443\u0434\u0438\u0439 \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u043f\u043e \u043a\u043b\u044e\u0447\u0443 &#39;features&#39;<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"python\">json.loads(json_data)['features']<\/code><\/pre>\n<p>  <\/div>\n<\/p><\/div>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u041f\u0435\u0440\u0435\u0431\u0438\u0440\u0430\u044f \u0441\u043f\u0438\u0441\u043e\u043a \u0444\u043e\u0442\u043e\u0441\u0442\u0443\u0434\u0438\u0439 \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u044f \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435, \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043a\u043e\u0434 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"python\">def studio_list():          url = 'https:\/\/ugoloc.ru\/studios\/list.json'     json_data = urllib.request.urlopen(url).read().decode()          id = list()     name = list()     metro = list()     address = list()     phone = list()     email = list()      for i in range(len(json.loads(json_data)['features'])):         id.append(json.loads(json_data)['features'][i]['studio']['id'])         name.append(json.loads(json_data)['features'][i]['studio']['name'])         metro.append(json.loads(json_data)['features'][i]['studio']['metro'])         address.append(json.loads(json_data)['features'][i]['studio']['address'])         phone.append(json.loads(json_data)['features'][i]['studio']['phone'])         email.append(json.loads(json_data)['features'][i]['studio']['email'])      return pd.DataFrame.from_dict({'studio_id': id,                                     'name': name,                                     'metro': metro,                                     'address': address,                                     'phone': phone,                                     'email': email}).set_index('studio_id') <\/code><\/pre>\n<p>  <\/div>\n<\/p><\/div>\n<p>  \u041d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0441 id \u0441\u0442\u0443\u0434\u0438\u0438, \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c, \u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0438\u043c \u043c\u0435\u0442\u0440\u043e, \u0430\u0434\u0440\u0435\u0441\u043e\u043c, \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u043e\u043c \u0438 e-mail&#8217;\u043e\u043c.<br \/>  \u041f\u0440\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0442\u044f\u043d\u0443\u0442\u044c \u0441\u0430\u0439\u0442, \u0434\u0430\u043d\u043d\u044b\u0435 \u0433\u0435\u043e\u043b\u043e\u043a\u0430\u0446\u0438\u0438, \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0441\u0442\u0443\u0434\u0438\u0438 \u0438 \u043f\u0440\u043e\u0447\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0435.<\/p>\n<h3>2. \u0412\u044b\u0433\u0440\u0443\u0437\u043a\u0430 \u0441\u043f\u0438\u0441\u043a\u0430 \u0437\u0430\u043b\u043e\u0432<\/h3>\n<p>  \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0444\u043e\u0442\u043e\u0441\u0442\u0443\u0434\u0438\u0438 \u0441 \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u0435\u043c \u0437\u0430\u043b\u043e\u0432 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u043f\u0430\u043f\u043a\u0435 \u00ab<a href=\"https:\/\/ugoloc.ru\/studios\/show\/\" rel=\"nofollow\">ugoloc.ru\/studios\/show<\/a>\u00bb + id \u0444\u043e\u0442\u043e\u0441\u0442\u0443\u0434\u0438\u0438.<br \/>  \u041d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 \u0444\u043e\u0442\u043e\u0441\u0442\u0443\u0434\u0438\u0438 \u043d\u0430\u0445\u043e\u0434\u0438\u043c \u0441\u043f\u0438\u0441\u043e\u043a \u0441\u0441\u044b\u043b\u043e\u043a \u043d\u0430 \u0437\u0430\u043b\u044b. \u0421\u043f\u0438\u0441\u043e\u043a \u0441\u0441\u044b\u043b\u043e\u043a \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a <a href=\"https:\/\/www.crummy.com\/software\/BeautifulSoup\/\" rel=\"nofollow\">BeautifulSoup<\/a> \u0438 \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u044b\u0445 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0439 <a href=\"https:\/\/docs.python.org\/3\/library\/re.html\" rel=\"nofollow\">re<\/a>:  <\/p>\n<ol>\n<li>\u0432\u043d\u0430\u0447\u0430\u043b\u0435 \u0434\u0435\u043b\u0430\u0435\u043c get-\u0437\u0430\u043f\u0440\u043e\u0441 (urllib.request.urlopen) \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0441\u0442\u0443\u0434\u0438\u0438;<\/li>\n<li>\u043f\u043e\u0442\u043e\u043c \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0438\u043c \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0435 \u0441\u0442\u0440\u043e\u043a\u043e\u0432\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u043e\u0431\u044a\u0435\u043a\u0442 BeautifulSoup \u0441 \u0440\u0430\u0437\u0431\u043e\u0440\u043e\u043c \u043a\u0430\u043a html-\u043a\u043e\u0434 (\u00abhtml.parser&#8217;); <\/li>\n<li>\u0437\u0430\u0442\u0435\u043c \u043d\u0430\u0445\u043e\u0434\u0438\u043c \u0432\u0441\u0435 \u0441\u0441\u044b\u043b\u043a\u0438, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0435\u0441\u0442\u044c \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u0435 \u043f\u0430\u043f\u043a\u0438 \u201estudios\/hall\/\u201c.<\/li>\n<\/ol>\n<p>  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u041a\u043e\u0434 \u0437\u0430\u043f\u0440\u043e\u0441\u0430:<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"python\">url_studio = 'https:\/\/ugoloc.ru\/studios\/show\/' + str(584) html = urllib.request.urlopen(url_studio).read() soup = BeautifulSoup(html, &quot;html.parser&quot;)  halls_html = soup.find_all('a', href=re.compile('studios\/hall\/')) <\/code><\/pre>\n<p>  <\/div>\n<\/p><\/div>\n<p>  \u041f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0441\u043f\u0438\u0441\u043e\u043a BeautifulSoup-\u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0445 \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0437\u0430\u043b\u043e\u0432. \u0414\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0438\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f:  <\/p>\n<ol>\n<li>\u0438\u0437\u0432\u043b\u0435\u043a\u0430\u0435\u043c \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u0437\u0430\u043b \u043c\u0435\u0442\u043e\u0434\u043e\u043c .get(&#8216;href&#8217;) \u0438\u043b\u0438 \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u0435\u043c \u0438\u043d\u0434\u0435\u043a\u0441\u0430 [&#8216;href&#8217;];<\/li>\n<li>\u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c, \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u043b\u0438 \u043b\u0438 \u043f\u043e \u044d\u0442\u043e\u0439 \u0441\u0441\u044b\u043b\u043a\u0435 \u0440\u0430\u043d\u0435\u0435 (\u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0446\u0438\u043a\u043b\u0430);<\/li>\n<li>\u0432\u044b\u0433\u0440\u0443\u0436\u0430\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043e \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044e \u0437\u0430\u043b\u0430, \u0441\u0441\u044b\u043b\u043a\u0438, \u043f\u043b\u043e\u0449\u0430\u0434\u0438, \u0432\u044b\u0441\u043e\u0442\u0435 \u043f\u043e\u0442\u043e\u043b\u043a\u043e\u0432;<\/li>\n<li>\u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c, \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043b\u0438 \u0437\u0430\u043b \u0433\u0440\u0438\u043c\u0435\u0440\u043d\u044b\u043c \u043c\u0435\u0441\u0442\u043e\u043c (\u0432 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0438 \u0435\u0441\u0442\u044c \u0441\u043b\u043e\u0433 \u201e\u0433\u0440\u0438\u043c\u201c).<\/li>\n<\/ol>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u041a\u043e\u0434 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u0441\u043f\u0438\u0441\u043a\u0430 \u0437\u0430\u043b\u043e\u0432<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"python\">def hall_list(studio_id):          st_id = list()     hall_id = list()     name = list()     is_hall = list()     square = list()     ceiling = list()          for id in studio_id:         url_studio = 'https:\/\/ugoloc.ru\/studios\/show\/' + str(id)         html = urllib.request.urlopen(url_studio).read()         soup = BeautifulSoup(html, &quot;html.parser&quot;)          halls_html = soup.find_all('a', href=re.compile('studios\/hall\/'))         halls = dict()         for hall in halls_html:             if int(hall.get('href').replace('\/studios\/hall\/','')) not in hall_id:                 st_id.append(id)                 name.append(hall['title'])                 hall_id.append(int(hall.get('href').replace('\/studios\/hall\/','')))                 if '\u0433\u0440\u0438\u043c' in str.lower(hall['title']):                     is_hall.append(0)                 else:                     is_hall.append(1)                                      url_hall = 'https:\/\/ugoloc.ru\/studios\/hall\/' + str(hall.get('href').replace('\/studios\/hall\/',''))                 html_hall = urllib.request.urlopen(url_hall).read()                 soup_hall = BeautifulSoup(html_hall, &quot;html.parser&quot;)                                  try:                     square.append(int(soup_hall.find_all('div', class_='param-value')[0].contents[0]))                 except:                     square.append(np.nan)                 try:                     ceiling.append(float(soup_hall.find_all('div', class_='param-value')[1].contents[0]))                 except:                     ceiling.append(np.nan)          return pd.DataFrame.from_dict({'studio_id': st_id,                                     'hall_id': hall_id,                                     'name': name,                                     'is_hall': is_hall,                                    'square': square,                                    'ceiling': ceiling                                   }).set_index('hall_id') <\/code><\/pre>\n<p>  <\/div>\n<\/p><\/div>\n<h3>3. \u0412\u044b\u0433\u0440\u0443\u0437\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0431\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0437\u0430 \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u0443\u044e \u043d\u0435\u0434\u0435\u043b\u044e<\/h3>\n<p>  \u0414\u043b\u044f \u0432\u044b\u0433\u0440\u0443\u0437\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e \u0431\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e \u0437\u0430 \u043d\u0435\u0434\u0435\u043b\u044e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043d\u0430\u0439\u0442\u0438 \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 \u0432\u044b\u0433\u0440\u0443\u0437\u043a\u0443 json-\u0434\u0430\u043d\u043d\u044b\u0445. \u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043d\u0430\u0439\u0442\u0438 \u0435\u0435 \u043c\u043e\u0436\u043d\u043e \u0432 \u043a\u043e\u0434\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u043f\u043e\u0438\u0441\u043a\u043e\u043c \u043f\u043e \u0441\u043b\u043e\u0432\u0443 \u201ejson\u201c. \u041f\u0435\u0440\u0432\u043e\u0435 \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u0435 (27 \u0441\u0442\u0440\u043e\u043a\u0430) \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e: <br \/>  var ajax_url = &#8216;\/studios\/calendar\/975.json?week=&#8217;<\/p>\n<p>  \u041f\u0440\u043e\u0432\u0435\u0440\u0438\u043c \u0434\u0430\u043d\u043d\u0443\u044e \u0441\u0441\u044b\u043b\u043a\u0443: <a href=\"https:\/\/ugoloc.ru\/studios\/calendar\/975.json?week=\" rel=\"nofollow\">https:\/\/ugoloc.ru\/studios\/calendar\/975.json?week=<\/a><br \/>  \u0420\u0430\u0431\u043e\u0442\u0430\u0435\u0442! \u0412\u0438\u0434\u0438\u043c \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043e \u0447\u0430\u0441\u0430\u043c \u0431\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u043f\u043e \u0434\u043d\u044f\u043c, \u043f\u043e \u0441\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u0438.<\/p>\n<p>  \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 week \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0440\u0430\u0432\u0435\u043d 0. \u0414\u043b\u044f \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0445 \u043d\u0435\u0434\u0435\u043b\u044c \u0431\u0435\u0440\u0435\u043c \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f: -1 (\u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0430\u044f \u043d\u0435\u0434\u0435\u043b\u044f), -2 (2 \u043d\u0435\u0434\u0435\u043b\u0438 \u043d\u0430\u0437\u0430\u0434) \u0438 \u0442.\u0434., \u2014 \u0434\u043b\u044f \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f.<\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u0412\u044b\u0433\u0440\u0443\u0436\u0430\u0435\u043c json-\u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043e \u0431\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"python\">url_booking = 'https:\/\/ugoloc.ru\/studios\/calendar\/' + str(id) + '.json?week=' + str(week)  json_booking = json.loads(urllib.request.urlopen(url_booking).read().decode()) <\/code><\/pre>\n<p>  <\/div>\n<\/p><\/div>\n<p>  \u0414\u0430\u043d\u043d\u044b\u0435 \u043f\u043e \u0434\u0430\u0442\u0430\u043c \u043c\u043e\u0436\u0435\u043c \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u043f\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0443 &#8216;days&#8217;,<br \/>  \u043f\u043e \u0440\u0430\u0431\u043e\u0447\u0438\u043c \u0447\u0430\u0441\u0430\u043c \u2014 \u0438\u043d\u0434\u0435\u043a\u0441 &#8216;hours&#8217;,<br \/>  \u043f\u043e \u0446\u0435\u043d\u0430\u043c \u2014 \u0438\u043d\u0434\u0435\u043a\u0441 &#8216;prices&#8217;,<br \/>  \u043f\u043e \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u043c \u0441\u0440\u043e\u043a\u0435 \u0431\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u2014 \u0438\u043d\u0434\u0435\u043a\u0441 &#8216;min_hours&#8217;,<br \/>  \u043f\u043e \u0431\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e \u2014 \u0438\u043d\u0434\u0435\u043a\u0441 &#8216;bookings&#8217;.<\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u0421\u043e\u0431\u0438\u0440\u0430\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043e \u0431\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e \u0437\u0430 \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u0443\u044e \u043d\u0435\u0434\u0435\u043b\u044e<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"python\">def get_week_booking(id, week=0):     url_booking = 'https:\/\/ugoloc.ru\/studios\/calendar\/' + str(id) + '.json?week=' + str(week)      json_booking = json.loads(urllib.request.urlopen(url_booking).read().decode())          booking = {         'hall_id': id,         'week': week,         'monday_date': json_booking['days']['1']['date'],         'days': json_booking['days'],         'hours': json_booking['hours'],         'bookings': json_booking['bookings'],         'prices': json_booking['prices'],         'min_hours': json_booking['min_hours'],         'is_opened': 1 if np.sum([len(json_booking['bookings'][str(x)]) for x in range(1, 8)]) &gt; 0 else 0     }     time.sleep(.1)          return booking <\/code><\/pre>\n<p>  <\/div>\n<\/p><\/div>\n<p>  \u041e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u043e\u0439 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e \u043b\u0438 \u0445\u043e\u0442\u044f \u0431\u044b \u043e\u0434\u043d\u043e \u0431\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0437\u0430 \u043d\u0435\u0434\u0435\u043b\u044e. \u0415\u0441\u043b\u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e, \u0442\u043e \u0441\u0447\u0438\u0442\u0430\u0435\u043c \u0441\u0442\u0443\u0434\u0438\u044e \u043e\u0442\u043a\u0440\u044b\u0442\u043e\u0439.<\/p>\n<h3>4. \u0412\u044b\u0433\u0440\u0443\u0437\u043a\u0430 \u0438\u0441\u0442\u043e\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0431\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f<\/h3>\n<p>  \u0414\u043b\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0438\u0441\u0442\u043e\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0435 \u0431\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0437\u0430 \u043f\u0440\u043e\u0448\u043b\u0443\u044e \u043d\u0435\u0434\u0435\u043b\u044e, \u043f\u043e\u0437\u0430\u043f\u0440\u043e\u0448\u043b\u0443\u044e, 3 \u043d\u0435\u0434\u0435\u043b\u0438 \u043d\u0430\u0437\u0430\u0434 \u0438 \u0442.\u0434.<\/p>\n<p>  \u041e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u043c\u043e\u043c\u0435\u043d\u0442 \u043e\u0442\u043a\u0440\u044b\u0442\u0438\u044f \u0437\u0430\u043b\u0430. \u0415\u0441\u043b\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u0438\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 1000 \u043d\u0435\u0434\u0435\u043b\u044c \u043d\u0430\u0437\u0430\u0434, \u0442\u043e API \u0432\u044b\u0433\u0440\u0443\u0437\u0438\u0442 \u043d\u0430\u043c <a href=\"https:\/\/ugoloc.ru\/studios\/calendar\/975.json?week=-1000\" rel=\"nofollow\">\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435<\/a>. <br \/>  \u0424\u043e\u0440\u043c\u0443\u043b\u0438\u0440\u0443\u0435\u043c \u043a\u0440\u0438\u0442\u0435\u0440\u0438\u0439, \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u044e\u0449\u0438\u0439, \u0447\u0442\u043e \u0437\u0430\u043b \u0437\u0430\u043a\u0440\u044b\u0442: \u0435\u0441\u043b\u0438 \u0437\u0430\u043b \u043d\u0438 \u0440\u0430\u0437\u0443 \u043d\u0435 \u0431\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043b\u0441\u044f 2 \u043c\u0435\u0441\u044f\u0446\u0430 \u043f\u043e\u0434\u0440\u044f\u0434 (9 \u043d\u0435\u0434\u0435\u043b\u044c), \u0442\u043e \u043e\u043d \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u043b.  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043a\u0440\u0438\u0442\u0435\u0440\u0438\u0439, \u043d\u0430\u043f\u0438\u0448\u0435\u043c \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0443<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"python\">def get_past_booking(id, weeks_ago = 500):     week = -1     null_period = 9     flag = 0     d = dict()          while flag != 1:         d[week] = get_week_booking(id, week)         if (len(d) &gt; null_period              and 1 not in [d[-1 * x]['is_opened'] for x in range(len(d) - 9, len(d))]            ):                          flag = 1             for x in range(0, null_period + 1):                 del d[week + x]                  if week &lt; weeks_ago * -1:             return d         week += -1          time.sleep(1)     return d <\/code><\/pre>\n<p>  <\/div>\n<\/p><\/div>\n<p>  \u041e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u043c\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438 \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0438\u043b \u0441\u0440\u043e\u043a \u0432 \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 10 \u043b\u0435\u0442 (500 \u043d\u0435\u0434\u0435\u043b\u044c), \u043e\u0437\u043d\u0430\u0447\u0430\u044e\u0449\u0438\u0439 \u0447\u0442\u043e \u0438\u0441\u0442\u043e\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0431\u043e\u043b\u0435\u0435 10 \u043b\u0435\u0442 \u043d\u0430\u043c \u043d\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b (\u043f\u0440\u0438\u0442\u043e\u043c, \u0447\u0442\u043e \u0430\u0433\u0440\u0435\u0433\u0430\u0442\u043e\u0440 \u043e\u0442\u043a\u0440\u044b\u0442 \u0441 2015 \u0433\u043e\u0434\u0430).<\/p>\n<p>  \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u0441\u0440\u043e\u043a \u043e\u0436\u0438\u0434\u0430\u043d\u0438\u044f \u043c\u0435\u0436\u0434\u0443 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u043c \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 0,1 \u0441\u0435\u043a\u0443\u043d\u0434\u0443.<\/p>\n<h3>5. \u0412\u044b\u0433\u0440\u0443\u0437\u043a\u0430 \u0431\u0443\u0434\u0443\u0449\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445<\/h3>\n<p>  \u0412 \u0432\u044b\u0433\u0440\u0443\u0437\u043a\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0431\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0431\u0443\u0434\u0443\u0449\u0438\u0445 \u043f\u0435\u0440\u0438\u043e\u0434\u043e\u0432 \u0432\u0430\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u043d\u0435\u0434\u0435\u043b\u044e, \u043a\u043e\u0433\u0434\u0430 \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0431\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0439.<\/p>\n<p>  \u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u044b\u0439 \u0441 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u043c \u043f\u0443\u043d\u043a\u0442\u043e\u043c \u043a\u0440\u0438\u0442\u0435\u0440\u0438\u0439: \u0435\u0441\u043b\u0438 \u0432 \u0442\u0435\u0447\u0435\u043d\u0438\u0435 2 \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u043f\u043e\u0434\u0440\u044f\u0434 (9 \u043d\u0435\u0434\u0435\u043b\u044c) \u043d\u0435 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u043e \u043d\u0438 \u043e\u0434\u043d\u043e\u0439 \u0431\u0440\u043e\u043d\u0438, \u0442\u043e \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0438\u0435 \u043f\u0435\u0440\u0438\u043e\u0434\u044b \u043c\u043e\u0436\u0435\u043c \u043d\u0435 \u043f\u0440\u043e\u0441\u043c\u0430\u0440\u0442\u0438\u0432\u0430\u0442\u044c.<\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043a\u043e\u0434 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"python\">def get_future_booking(id):     week = 0     null_period = 9     flag = 0     d = dict()          while (flag != 1 and week &lt;= 30):         d[week] = get_week_booking(id, week)         if (len(d) &gt; null_period and 1 not in [d[x]['is_opened'] for x in range(len(d) - 9, len(d))]):             flag = 1             for x in range(0, null_period):                 del d[week - x]                      week += 1          time.sleep(1)     return d <\/code><\/pre>\n<p>  <\/div>\n<\/p><\/div>\n<h3>6. \u0420\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u0430 \u0432\u044b\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u044b\u0445 json-\u0434\u0430\u043d\u043d\u044b\u0445<\/h3>\n<p>  \u0414\u043b\u044f \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u0438 json-\u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u0441\u0432\u043e\u0435\u043c \u0447\u0430\u0441\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b \u043c\u0435\u0442\u043e\u0434\u044b try, except: \u0435\u0441\u043b\u0438 \u043d\u0435 \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u043f\u0440\u0438\u0432\u044b\u0447\u043d\u044b\u0439 \u0442\u0438\u043f \u0434\u0430\u043d\u043d\u044b\u0445, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 dictionary (try), \u0442\u043e \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u044b\u0432\u0430\u0435\u043c \u043a\u0430\u043a \u0434\u0440\u0443\u0433\u043e\u0439 \u043e\u0436\u0438\u0434\u0430\u0435\u043c\u044b\u0439 \u0442\u0438\u043f, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 list (except). \u0421\u0435\u0439\u0447\u0430\u0441 \u043f\u043e\u043d\u0438\u043c\u0430\u044e, \u043b\u0443\u0447\u0448\u0435 \u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u043d\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0435 \u0442\u0438\u043f\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e (\u0444\u0443\u043d\u043a\u0446\u0438\u044f type()) \u0438 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u0439 \u0438\u0445 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u043e\u0439.<\/p>\n<p>  \u041c\u044b \u043d\u0430\u043f\u0438\u0441\u0430\u043b\u0438 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b \u043f\u043e \u0432\u044b\u0433\u0440\u0443\u0437\u043a\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e \u0431\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e \u0434\u043b\u044f \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u0433\u043e \u0437\u0430\u043b\u0430. \u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0437\u0430\u0434\u0430\u0447\u0435\u0439 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0435\u0440\u0435\u0432\u0435\u0441\u0442\u0438 json-\u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u0442\u0430\u0431\u043b\u0438\u0447\u043d\u044b\u0439 \u0432\u0438\u0434 DataFrame \u0434\u043b\u044f \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0438\u043b\u0438 \u0437\u0430\u043f\u0438\u0441\u0438 \u0432 \u0431\u0430\u0437\u0443 \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<p>  \u0414\u043b\u044f \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u0438 \u043f\u0435\u0440\u0435\u0431\u0438\u0440\u0430\u0435\u043c \u043a\u0430\u0436\u0434\u044b\u0439 \u0434\u0435\u043d\u044c \u043d\u0435\u0434\u0435\u043b\u0438.  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u0414\u0430\u0442\u0443 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0438\u043c \u0438\u0437 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u0433\u043e \u0444\u043e\u0440\u043c\u0430\u0442\u0430 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442 \u0434\u0430\u0442\u044b<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"python\">cur_date = pd.Timestamp(datetime.datetime.strptime(d[week]['days'][str(weeks_day)]['date'], '%d.%m.%Y').isoformat()) <\/code><\/pre>\n<p>  <\/div>\n<\/p><\/div>\n<p>  \u0427\u0430\u0441\u044b \u0431\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u044b \u0432 \u0432\u0438\u0434\u0435 \u0442\u0435\u043a\u0441\u0442\u0430 (\u00bb12:00&quot;), \u0447\u0438\u0441\u043b\u0430 (12), \u0430 \u043f\u0440\u0438 \u043a\u0440\u0443\u0433\u043b\u043e\u0441\u0443\u0442\u043e\u0447\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u0435 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0443\u043a\u0430\u0437\u0430\u043d\u044b \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u043c \u0447\u0438\u0441\u043b\u043e\u043c \u0431\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f (24).  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u0414\u043b\u044f \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u0438 \u0447\u0430\u0441\u043e\u0432 \u0440\u0430\u0431\u043e\u0442\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b \u043c\u0435\u0442\u043e\u0434\u044b try, except<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"python\">            try:                 try:                     working_hour = list([int(x) for x in d[week]['prices'][str(weeks_day)].keys()])                     working_hour_is_text = 1                 except:                     working_hour = list(d[week]['prices'][str(weeks_day)].keys())             except:                 working_hour = list(range(len(d[week]['prices'][str(weeks_day)]))) <\/code><\/pre>\n<p>  <\/div>\n<\/p><\/div>\n<p>  \u0415\u0441\u043b\u0438 \u0446\u0435\u043d\u0430 \u0431\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0430 \u043d\u0430 \u043e\u0434\u043d\u043e\u043c \u0443\u0440\u043e\u0432\u043d\u0435 \u0432\u043d\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0434\u043d\u044f \u043d\u0435\u0434\u0435\u043b\u0438 \u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u0442\u043e \u0446\u0435\u043d\u0430 \u043c\u043e\u0436\u0435\u0442 \u0445\u0440\u0430\u043d\u0438\u0442\u044c\u0441\u044f \u0447\u0438\u0441\u043b\u043e\u043c \u0438\u043b\u0438 \u0441\u0442\u0440\u043e\u043a\u043e\u0439. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0446\u0435\u043d\u0430 \u043c\u043e\u0436\u0435\u0442 \u0445\u0440\u0430\u043d\u0438\u0442\u044c\u0441\u044f \u0432 \u0432\u0438\u0434\u0435 \u0441\u043f\u0438\u0441\u043a\u0430 \u0438\u043b\u0438 \u0441\u043b\u043e\u0432\u0430\u0440\u044f.  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u0414\u043b\u044f \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u0438 \u0446\u0435\u043d\u044b \u0431\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b \u043c\u0435\u0442\u043e\u0434\u044b try, except<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"python\">            try:                 price = list(                         d[week]['prices'][str(weeks_day)].values()                          if type(d[week]['prices'][str(weeks_day)].values()) != type(dict())                         else d[week]['prices'][str(weeks_day)]                         )             except:                 price = list(                         d[week]['prices'][str(weeks_day)]                         if type(d[week]['prices'][str(weeks_day)]) != type(dict())                         else d[week]['prices'][str(weeks_day)]                         ) <\/code><\/pre>\n<p>  <\/div>\n<\/p><\/div>\n<p>  \u041f\u0435\u0440\u0438\u043e\u0434 \u0431\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0443\u043a\u0430\u0437\u0430\u043d \u043a\u0430\u043a \u0441\u043f\u0438\u0441\u043a\u043e\u043c \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u0434\u043b\u044f \u0431\u0440\u043e\u043d\u0438 \u0447\u0430\u0441\u043e\u0432, \u0442\u0430\u043a \u0438 \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u043c \u0447\u0438\u0441\u043b\u043e\u043c, \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0449\u0438\u043c \u043d\u0430 \u043a\u0440\u0443\u0433\u043b\u043e\u0441\u0443\u0442\u043e\u0447\u043d\u044b\u0439 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440 \u0431\u0440\u043e\u043d\u0438.  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u0420\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0433\u043e \u0434\u043b\u044f \u0431\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432\u0440\u0435\u043c\u0435\u043d\u0438:<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"python\">            try:                 booking_hours = sorted([int(x) for x in d[week]['bookings'][str(weeks_day)]])                 duration = [d[week]['bookings'][str(weeks_day)][str(h)]['duration'] for h in booking_hours]             except:                 booking_hours = 0                 duration = 24 <\/code><\/pre>\n<p>  <\/div>\n<\/p><\/div>\n<p>  \u0417\u0430\u0431\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0440\u0430\u0431\u043e\u0447\u0438\u0435 \u0447\u0430\u0441\u044b, \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0435 \u043a \u0431\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e. \u0422\u043e \u0435\u0441\u0442\u044c, \u0435\u0441\u043b\u0438 \u0437\u0430\u043b \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441 10:00 \u0434\u043e 22:00 \u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e \u043a \u0431\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e \u0432\u0440\u0435\u043c\u044f \u0441 10:00 \u0434\u043e 18:00, \u0442\u043e \u0432\u0440\u0435\u043c\u044f \u0441 18:00 \u0434\u043e 22:00 \u0441\u0447\u0438\u0442\u0430\u0435\u043c \u0437\u0430\u0431\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438. \u042d\u0442\u0443 \u043b\u043e\u0433\u0438\u043a\u0443 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u043c \u0434\u043b\u044f \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 \u0437\u0430\u0431\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438.<\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u041e\u0431\u0449\u0430\u044f \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u0438 json-\u0434\u0430\u043d\u043d\u044b\u0445:<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"python\">def hall_booking(d):     hour = list(range(24))          df = pd.DataFrame(columns=['hour', 'date', 'is_working_hour', 'price', 'duration', 'week', 'min_hours'])          for week in d.keys():                  for weeks_day in range(1, 8):              working_hour_is_text = 0             cur_date = pd.Timestamp(datetime.datetime.strptime(d[week]['days'][str(weeks_day)]['date'], '%d.%m.%Y').isoformat())             try:                 try:                     working_hour = list([int(x) for x in d[week]['prices'][str(weeks_day)].keys()])                     working_hour_is_text = 1                 except:                     working_hour = list(d[week]['prices'][str(weeks_day)].keys())             except:                 working_hour = list(range(len(d[week]['prices'][str(weeks_day)])))             try:                 price = list(                         d[week]['prices'][str(weeks_day)].values()                          if type(d[week]['prices'][str(weeks_day)].values()) != type(dict())                         else d[week]['prices'][str(weeks_day)]                         )             except:                 price = list(                         d[week]['prices'][str(weeks_day)]                         if type(d[week]['prices'][str(weeks_day)]) != type(dict())                         else d[week]['prices'][str(weeks_day)]                         )              try:                 booking_hours = sorted([int(x) for x in d[week]['bookings'][str(weeks_day)]])                 duration = [d[week]['bookings'][str(weeks_day)][str(h)]['duration'] for h in booking_hours]             except:                 booking_hours = 0                 duration = 24             min_hours = d[week]['min_hours']              df_temp = pd.DataFrame(hour, columns = ['hour'])             df_temp['date'] = cur_date             df_temp['is_working_hour'] = [1 if y else 0 for y in [x in working_hour for x in hour]]             df_temp['price'] = 0             if len(working_hour) == 24:                 df_temp['price'] = price             else:                 df_temp.loc[working_hour, 'price'] = price             df_temp['duration'] = 0              if duration != 24 and working_hour_is_text == 0:                 df_temp.loc[[x in booking_hours for x in df_temp['hour']], 'duration'] = duration             elif duration != 24 and working_hour_is_text != 0:                 df_temp.loc[[x in booking_hours for x in df_temp['hour']], 'duration'] = duration             else:                 df_temp.loc[0, 'duration'] = 24             df_temp['week'] = week             df_temp['min_hours'] = min_hours              df = pd.concat([df, df_temp])          df = df.sort_values(by=['week', 'date', 'hour'])     df.index = list(range(len(df)))     df['is_booked'] = 0          for i in df.index:         if df.loc[i, 'duration'] != 0:             if i + df.loc[i, 'duration'] &lt; df.index[-1]:                 df.loc[i:(i + int(df.loc[i, 'duration'])) - 1, 'is_booked'] = 1             else:                 df.loc[i:, 'is_booked'] = 1          df['hall_id'] = d[np.min(list(d.keys()))]['hall_id']          return df <\/code><\/pre>\n<p>  <\/div>\n<\/p><\/div>\n<h3>\u0418\u0442\u043e\u0433<\/h3>\n<p>  \u041c\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043b\u0438 \u0440\u0430\u0431\u043e\u0442\u0443 \u043f\u0430\u0440\u0441\u0435\u0440\u0430, \u0441\u043e\u0431\u0438\u0440\u0430\u044e\u0449\u0435\u0433\u043e \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043e \u0431\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e \u0437\u0430\u043b\u043e\u0432 \u043c\u043e\u0441\u043a\u043e\u0432\u0441\u043a\u0438\u0445 \u0444\u043e\u0442\u043e\u0441\u0442\u0443\u0434\u0438\u0439 \u0441 \u0441\u0430\u0439\u0442\u0430 ugoloc.ru. \u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0432\u044b\u0433\u0440\u0443\u0437\u0438\u043b\u0438 \u0441\u043f\u0438\u0441\u043e\u043a \u0444\u043e\u0442\u043e\u0441\u0442\u0443\u0434\u0438\u0439, \u0441\u043f\u0438\u0441\u043e\u043a \u0437\u0430\u043b\u043e\u0432, \u0441\u043f\u0438\u0441\u043e\u043a \u0437\u0430\u0431\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0447\u0430\u0441\u043e\u0432 \u0438 \u043f\u0435\u0440\u0435\u0432\u0435\u043b\u0438 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442 DataFrame. \u0421 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u043c\u0438 \u0443\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c, \u043d\u043e \u043f\u0430\u0440\u0441\u0438\u043d\u0433 \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0438 \u0432\u044b\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0433\u0434\u0435-\u0442\u043e \u0445\u0440\u0430\u043d\u0438\u0442\u044c.<\/p>\n<p>  \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u043e\u043f\u0438\u0448\u0443 \u043a\u0430\u043a \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0432 \u043f\u0440\u043e\u0441\u0442\u0443\u044e \u0431\u0430\u0437\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u0432\u044b\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u0438\u0445 \u043f\u0440\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438.<\/p>\n<p>  \u0413\u043e\u0442\u043e\u0432\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043d\u0430\u0439\u0442\u0438 \u043d\u0430 \u043c\u043e\u0435\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 \u0432 <a href=\"https:\/\/github.com\/dmitry-data-science\/studios\" rel=\"nofollow\">github<\/a>.<\/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=\"https:\/\/habr.com\/ru\/post\/504900\/\"> https:\/\/habr.com\/ru\/post\/504900\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\" data-io-article-url=\"https:\/\/habr.com\/ru\/post\/504900\/\">\u0412 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435 \u043e\u0433\u0440\u043e\u043c\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445. \u041f\u0440\u0438 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u043c \u0441\u0431\u043e\u0440\u0435 \u0438 \u0430\u043d\u0430\u043b\u0438\u0437\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043c\u043e\u0436\u043d\u043e \u0440\u0435\u0448\u0438\u0442\u044c \u0432\u0430\u0436\u043d\u044b\u0435 \u0431\u0438\u0437\u043d\u0435\u0441-\u0437\u0430\u0434\u0430\u0447\u0438. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0441\u0442\u043e\u0438\u0442 \u043b\u0438 \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u0441\u0432\u043e\u0439 \u0431\u0438\u0437\u043d\u0435\u0441?<\/p>\n<p>  \u0421 \u0442\u0430\u043a\u0438\u043c \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u043c \u043a\u043e \u043c\u043d\u0435 \u043e\u0431\u0440\u0430\u0442\u0438\u043b\u0438\u0441\u044c \u043a\u043b\u0438\u0435\u043d\u0442\u044b, \u0436\u0435\u043b\u0430\u044e\u0449\u0438\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0443 \u0440\u044b\u043d\u043a\u0430 \u0443\u0441\u043b\u0443\u0433 \u0444\u043e\u0442\u043e\u0441\u0442\u0443\u0434\u0438\u0439. \u0414\u043b\u044f \u043d\u0438\u0445 \u0431\u044b\u043b\u043e \u0432\u0430\u0436\u043d\u043e \u043f\u043e\u043d\u044f\u0442\u044c: \u0441\u0442\u043e\u0438\u0442 \u043b\u0438 \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0442\u044c \u0444\u043e\u0442\u043e\u0441\u0442\u0443\u0434\u0438\u044e, \u0433\u0434\u0435 \u043e\u0442\u0440\u044b\u0442\u044c, \u043a\u0430\u043a\u0430\u044f \u043f\u043b\u043e\u0449\u0430\u0434\u044c \u043f\u043e\u043c\u0435\u0449\u0435\u043d\u0438\u044f, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u043b\u043e\u0432 \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u0432\u043d\u0430\u0447\u0430\u043b\u0435, \u0432 \u043a\u0430\u043a\u043e\u0439 \u043c\u0435\u0441\u044f\u0446 \u043b\u0443\u0447\u0448\u0435 \u0441\u0442\u0430\u0440\u0442\u043e\u0432\u0430\u0442\u044c \u0438 \u043c\u043d\u043e\u0433\u0438\u0435 \u0434\u0440\u0443\u0433\u0438\u0435 \u0432\u043e\u043f\u0440\u043e\u0441\u044b.<\/p>\n<p>  \u041f\u043e \u0438\u0442\u043e\u0433\u0443 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u0441\u0435\u0440\u0438\u044e \u0441\u0442\u0430\u0442\u0435\u0439 \u0441 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u044b\u043c \u043f\u043e\u044d\u0442\u0430\u043f\u043d\u044b\u043c \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u043c \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u0445 \u0437\u0430\u0434\u0430\u0447, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0438 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0445 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432. <\/p>\n<p>  \u0412 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435, \u043f\u0435\u0440\u0432\u043e\u0439 \u0438\u0437 \u0442\u0440\u0435\u0445, \u043e\u043f\u0438\u0448\u0443 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043f\u0430\u0440\u0441\u0438\u043d\u0433\u0430 \u043d\u0430 Python.<br \/>  \u0412\u043e \u0432\u0442\u043e\u0440\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043e\u043f\u0438\u0448\u0443 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043f\u0430\u0440\u0441\u0438\u043d\u0433\u0430 \u0441 \u0431\u0430\u0437\u043e\u0439 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445.<br \/>  \u0412 \u0442\u0440\u0435\u0442\u044c\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u044e \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0441\u043e\u0431\u0440\u0430\u043d\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u043e\u0442\u0432\u0435\u0442\u044b \u043d\u0430 \u0432\u043e\u043f\u0440\u043e\u0441\u044b \u043a\u043b\u0438\u0435\u043d\u0442\u0430, \u0436\u0435\u043b\u0430\u044e\u0449\u0435\u0433\u043e \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u0444\u043e\u0442\u043e\u0441\u0442\u0443\u0434\u0438\u044e.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/me\/qf\/v6\/meqfv6mbrxsonbgf5p5rwploqqa.jpeg\">  <\/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-307386","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/307386","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=307386"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/307386\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=307386"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=307386"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=307386"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}