{"id":412100,"date":"2024-06-29T22:21:11","date_gmt":"2024-06-29T22:21:11","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=412100"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=412100","title":{"rendered":"<span>Instagram-\u0431\u043e\u0442 \u0434\u043b\u044f \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f \u043b\u0438\u0447\u043d\u043e\u0439 \u0436\u0438\u0437\u043d\u0438<\/span>"},"content":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p> \u041d\u0435\u0434\u0430\u0432\u043d\u043e \u043c\u044b \u0441 \u0434\u0435\u0432\u0443\u0448\u043a\u043e\u0439 \u0441\u0435\u0440\u044c\u0435\u0437\u043d\u043e \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043b\u0438 \u0438 \u0432\u044b\u044f\u0441\u043d\u0438\u043b\u043e\u0441\u044c, \u0447\u0442\u043e \u044f \u0434\u0430\u0436\u0435 \u043d\u0435 \u043f\u0438\u0448\u0443 \u0435\u0439 \u201c\u0421 \u0434\u043e\u0431\u0440\u044b\u043c \u0443\u0442\u0440\u043e\u043c\u201d \u0438 \u0432\u043e\u043e\u0431\u0449\u0435 \u0440\u0435\u0434\u043a\u043e \u043f\u0438\u0448\u0443 \u043f\u043e \u0443\u0442\u0440\u0430\u043c. \u0412 \u0446\u0435\u043b\u043e\u043c, \u043f\u0440\u0438\u0447\u0438\u043d\u0430 \u043a\u0440\u043e\u0435\u0442\u0441\u044f \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u044f \u043d\u0435 \u043f\u0440\u043e\u0441\u044b\u043f\u0430\u044e\u0441\u044c \u0441 \u0432\u043e\u0441\u0445\u043e\u0434\u043e\u043c \u043f\u0435\u0440\u0432\u044b\u0445 \u043b\u0443\u0447\u0435\u0439 \u0441\u043e\u043b\u043d\u0446\u0430 (\u043a\u0430\u043a \u043e\u043d\u0430), \u0430 \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u043b\u044e\u0431\u043b\u044e. \u041d\u0443 \u0430 \u0435\u0439, \u043a\u043e\u043d\u0435\u0447\u043d\u043e \u0436\u0435, \u043f\u0440\u0438\u044f\u0442\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u043d\u0435\u0436\u043d\u043e\u0441\u0442\u0438 \u043f\u043e \u0443\u0442\u0440\u0430\u043c \u0438 \u0432\u0441\u0435 \u0442\u0430\u043a\u043e\u0435.<\/p>\n<p> \u0422\u0430\u043a \u043a\u0430\u043a \u043e\u0431\u0449\u0430\u0435\u043c\u0441\u044f \u043c\u044b \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0432 Instagram, \u044f \u043f\u043e\u0434\u0443\u043c\u0430\u043b, \u0447\u0442\u043e \u043d\u0435\u043f\u043b\u043e\u0445\u043e \u0431\u044b \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u0432\u0441\u0435 \u044d\u0442\u043e \u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441. \u0422\u0435\u043c \u0431\u043e\u043b\u0435\u0435 \u0447\u0442\u043e \u0443 \u0441\u043e\u0446\u0441\u0435\u0442\u0438 \u0432\u0440\u043e\u0434\u0435 \u043a\u0430\u043a \u0435\u0441\u0442\u044c \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0439 API.<\/p>\n<p> \u041a\u0430\u043a \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c, \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u043e\u0433\u043e \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0433\u043e API \u0442\u0430\u043c \u043d\u0435\u0442, \u0430 \u0442\u043e\u0442 \u0447\u0442\u043e \u0435\u0441\u0442\u044c \u2013 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0431\u0438\u0437\u043d\u0435\u0441-\u0430\u043a\u043a\u0430\u0443\u043d\u0442\u044b. \u041d\u043e \u0442\u0430\u043a \u0438\u043b\u0438 \u0438\u043d\u0430\u0447\u0435 &#8212; \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c.<\/p>\n<details class=\"spoiler\">\n<summary><\/summary>\n<div class=\"spoiler__content\">\n<p> \u042f \u0443\u0432\u0435\u0440\u0435\u043d, \u0447\u0442\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u0441\u0435\u0440\u0432\u0438\u0441\u044b \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e, \u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u0440\u0430\u0431\u043e\u0447\u0435\u0433\u043e \u0431\u043e\u0442\u0430 \u0432\u043e\u0442 \u043f\u0440\u044f\u043c\u043e \u043e\u0447\u0435\u043d\u044c \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c. \u042f \u043d\u0430\u0448\u0435\u043b \u043d\u0430 \u0425\u0430\u0431\u0440\u0435 \u0441\u0442\u0430\u0442\u044c\u044e \u043f\u0440\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0443 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439 \u043d\u0430 PHP \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0432\u0437\u044f\u043b \u0430\u0434\u0440\u0435\u0441 \u0434\u043b\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 (\u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u0441\u0442\u0430\u0442\u044c\u044e \u0432 \u043a\u043e\u043d\u0446\u0435). \u0410 \u0437\u0434\u0435\u0441\u044c \u044f \u043f\u043e\u0441\u0442\u0430\u0440\u0430\u044e\u0441\u044c \u043e\u043f\u0438\u0441\u0430\u0442\u044c, \u043f\u043e \u0441\u0443\u0442\u0438, \u0442\u043e\u0442 \u0436\u0435 \u043f\u0440\u043e\u0446\u0435\u0441\u0441, \u043d\u043e \u043d\u0430 \u041f\u0438\u0442\u043e\u043d\u0435 \u0441 \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u043e\u0439 \u0434\u043e\u0440\u0430\u0431\u043e\u0442\u043a\u043e\u0439. \u0422\u043e\u0442 \u0436\u0435 \u0431\u043e\u0442, \u0441 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u043c \u043d\u0430\u0431\u043e\u0440\u043e\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u0439. \u041c\u043e\u0436\u0435\u0442, \u043a\u043e\u043c\u0443-\u0442\u043e \u043f\u0440\u0438\u0433\u043e\u0434\u0438\u0442\u0441\u044f.<\/p>\n<p> \u041f\u043e\u043b\u043d\u044b\u0439 \u043a\u043e\u0434 \u0438 README \u043d\u0430 Github, \u0430 \u043d\u0438\u0436\u0435 &#8212; \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u043c\u043e\u043c\u0435\u043d\u0442\u044b.<\/p>\n<\/div>\n<\/details>\n<h3>\u0421\u0445\u0435\u043c\u0430 \u0441\u043a\u0440\u0438\u043f\u0442\u0430<\/h3>\n<p> \u0414\u043b\u044f \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u043a\u043e\u0434\u0430 \u0438 \u043a\u0430\u043a\u043e\u0439-\u043d\u0438\u043a\u0430\u043a\u043e\u0439 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u0430 \u0432 \u0431\u0443\u0434\u0443\u0449\u0435\u043c, \u0441\u043a\u0440\u0438\u043f\u0442 \u0440\u0430\u0437\u0431\u0438\u043b\u0441\u044f \u043d\u0430 3 \u043a\u043b\u0430\u0441\u0441\u0430:<\/p>\n<ol>\n<li>\n<p>Login \u2013 \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u0437\u0430 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044e \u0438 \u0441\u043e\u0437\u0434\u0430\u0435\u0442 \u0441\u0435\u0441\u0441\u0438\u044e;<\/p>\n<\/li>\n<li>\n<p>MessageMaker \u2013 \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f;<\/p>\n<\/li>\n<li>\n<p>SendMsg \u2013 \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u0430\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0430 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f.<\/p>\n<\/li>\n<\/ol>\n<p> \u0418 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e, 2 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u0430 <em>auth.txt<\/em> \u0438 <em>conf.txt<\/em>: \u0434\u0430\u043d\u043d\u044b\u0435 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u0438 \u0441\u043b\u043e\u0432\u0430\u0440\u044c \u0441 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f\u043c\u0438 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0438 \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u2013 <em>insta_bot_manager.py<\/em>. <\/p>\n<figure class=\"bordered\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/108\/dfb\/ff5\/108dfbff5e79dbf6f82a3729748a7d16.png\" alt=\"\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438\" title=\"\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438\" width=\"267\" height=\"154\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/108\/dfb\/ff5\/108dfbff5e79dbf6f82a3729748a7d16.png\"\/><figcaption>\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438<\/figcaption><\/figure>\n<h3>\u041a\u043b\u0430\u0441\u0441 Login &#8212; \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044f<\/h3>\n<p>\u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044f Instagram. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0438\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043f\u0440\u044f\u043c \u0432 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u0445 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/860\/a4c\/f0c\/860a4cf0c0f9fc4b801c8140868de143.png\" width=\"1366\" height=\"566\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/860\/a4c\/f0c\/860a4cf0c0f9fc4b801c8140868de143.png\"\/><figcaption><\/figcaption><\/figure>\n<p> \u041a\u0430\u043a \u0432\u0438\u0434\u043d\u043e \u2013 \u0437\u0430\u043f\u0440\u043e\u0441 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0430 \u0430\u0434\u0440\u0435\u0441 <a href=\"https:\/\/www.instagram%20.com\/accounts\/login\/ajax\/\" rel=\"noopener noreferrer nofollow\">https:\/\/www.instagram .com\/accounts\/login\/ajax\/<\/a>, \u0434\u0430 \u0438 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e. \u041d\u0435\u0442 \u043d\u0438 \u0442\u043e\u043a\u0435\u043d\u043e\u0432, \u043d\u0438 \u043a\u0430\u043a\u0438\u0445-\u0442\u043e \u043b\u0435\u0432\u044b\u0445 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432. \u0412\u043e\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0430\u0440\u043e\u043b\u044c \u0432 \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u043c \u0432\u0438\u0434\u0435. \u041a\u0430\u043a \u044f \u0432\u044b\u044f\u0441\u043d\u0438\u043b, \u044d\u0442\u043e \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0430 AES-GCM256, \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u0441 \u043a\u0430\u043a\u0438\u043c-\u0442\u043e \u043f\u0440\u0435\u0444\u0438\u043a\u0441\u043e\u043c. \u0421\u0442\u0440\u043e\u043a\u0430 \u0438\u0437 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:<\/p>\n<p> <code>#PWD_INSTAGRAM_BROWSER:10:16940921:enc_password<\/code><\/p>\n<p> \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 &#171;10&#187; &#8212; \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u043f\u0430\u0440\u043e\u043b\u044c \u0432 \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u043c \u0432\u0438\u0434\u0435, \u0434\u0430\u043b\u0435\u0435 &#8212; \u0432\u0440\u0435\u043c\u044f \u0438 \u0441\u0430\u043c \u043f\u0430\u0440\u043e\u043b\u044c. \u0414\u0435\u043b\u0430\u0442\u044c \u0441\u0432\u043e\u0439 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043b\u044c\u0449\u0438\u043a \u044f, \u043a\u043e\u043d\u0435\u0447\u043d\u043e \u0436\u0435, \u043d\u0435 \u0431\u0443\u0434\u0443, \u043d\u043e \u0435\u0441\u0442\u044c \u0438 \u0434\u0440\u0443\u0433\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0437\u0430\u043b\u043e\u0433\u0438\u043d\u0438\u0442\u044c\u0441\u044f \u0441 \u043f\u0430\u0440\u043e\u043b\u0435\u043c \u0432 \u0447\u0438\u0441\u0442\u043e\u043c \u0432\u0438\u0434\u0435. \u0414\u043b\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u043e\u0431\u044b\u0447\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c &#171;10&#187; \u043d\u0430 &#171;0&#187;:<\/p>\n<p> <code>#PWD_INSTAGRAM_BROWSER:0:1690149:password<\/code>\u00a0<\/p>\n<p> \u0414\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0444\u0430\u0439\u043b \u2013 <em>auth.txt<\/em>. \u0417\u043d\u0430\u044e, \u0447\u0442\u043e \u043b\u0443\u0447\u0448\u0435 \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u044d\u0442\u043e \u0432\u0441\u0435 \u0432 \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u043c \u0432\u0438\u0434\u0435, \u043d\u043e \u0442\u0430\u043a \u043a\u0430\u043a \u0434\u0430\u043d\u043d\u044b\u0435 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u2013 \u044d\u0442\u043e \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e.<\/p>\n<p> \u041a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f <em>auth.txt<\/em> \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:<\/p>\n<ol>\n<li>\n<p>Login<\/p>\n<\/li>\n<li>\n<p>Password<\/p>\n<\/li>\n<li>\n<p>Ig_user_id (id \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435)<\/p>\n<\/li>\n<\/ol>\n<p> \u041f\u0440\u043e\u0441\u0442\u043e \u0442\u0435\u043a\u0441\u0442. \u041a\u0430\u0436\u0434\u044b\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0437\u0430\u043f\u0438\u0441\u0430\u043d \u0441 \u043d\u043e\u0432\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438. \u0427\u0438\u0442\u0430\u0435\u043c \u0438\u0437 \u0444\u0430\u0439\u043b\u0430:<\/p>\n<pre><code class=\"python\">with\u00a0open(\"auth.txt\",\u00a0\"r\")\u00a0as\u00a0f:   l\u00a0=\u00a0f.read().split(\"\\n\")   username\u00a0=\u00a0l[0]   passwd\u00a0=\u00a0l[1]   self.user_id\u00a0=\u00a0l[2]  <\/code><\/pre>\n<p> \u0422\u0435\u043f\u0435\u0440\u044c \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0443\u0435\u043c\u0441\u044f, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f <code>requests<\/code>:<\/p>\n<pre><code class=\"python\"># \u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430, \u043f\u043e\u043b\u0443\u0447\u0438\u043c csrf-token: r = requests()  # \u041c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u0443\u0441\u043e\u043a \u043f\u043e\u043b\u043d\u043e\u0439 \u0441\u0441\u044b\u043b\u043a\u0438 \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u0438\u043b\u0438 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441 \u043f\u0440\u044f\u043c\u043e \u043a https:\/\/www.instagram.com\/. login_url = \"https:\/\/www.instagram.com\/accounts\/login\/\"  # \u0412 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430\u0445 \u043c\u043e\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0441\u0432\u043e\u0439 user-agent. \u0412 \u0434\u0440\u0443\u0433\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442 \u043e\u043f\u043e\u0432\u0435\u0449\u0435\u043d\u0438\u0435 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043b\u0443\u0447\u0448\u0435 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u044c. # \u041f\u0440\u0438 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0438 \u0438\u043b\u0438 \u043a\u0430\u043a\u043e\u043c-\u0442\u043e \u043c\u0443\u0441\u043e\u0440\u0435 \u0432 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0435 User-Agent, IG \u043f\u0440\u0438\u0441\u044b\u043b\u0430\u0435\u0442 \u0432 \u043e\u0442\u0432\u0435\u0442\u0435 \u043e\u0448\u0438\u0431\u043a\u0443 \u201cmessage\u201d: \u201cuser-agent missmatch\u201d.  # \u0422\u0430\u043a \u043a\u0430\u043a \u0438\u043c\u0438\u0442\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0441\u0435\u0441\u0441\u0438\u044f \u2013 \u0441\u0440\u0430\u0437\u0443 \u0438\u0437\u043c\u0435\u043d\u0438\u043c user-agent \u043f\u0440\u044f\u043c\u043e \u0432 \u043e\u0431\u044a\u0435\u043a\u0442\u0435 \u0441\u0435\u0441\u0441\u0438\u0438. s = request.Session() s.headers[\"User-Agent\"] = (\"Mozilla\/5.0 (iPhone; CPU iPhone OS 14_1 like Mac OS X) \" +     \"AppleWebKit\/605.1.15 (KHTML, like Gecko) Mobile\/15E148 Instagram 142.0.0.22.109\" +    \"(iPhone12,5; iOS 14_1; en_US; en-US; scale=3.00; 1242x2688; 214888322) NW\/1\")  # \u041d\u0443 \u0438, \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0441\u0430\u043c \u0437\u0430\u043f\u0440\u043e\u0441 get_token = r.get(login_url, headers=headers)  if get_token.cookies.get(\"csrftoken\") is not None:   headers[\"x-csrftoken\"] = get_token.cookies[\"csrftoken\"]   #\u0415\u0441\u043b\u0438 \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c \u0432\u044b\u0442\u044f\u043d\u0443\u0442\u044c  \u0442\u043e\u043a\u0435\u043d \u0438\u0437 cookie \u2013 \u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0434\u0440\u0443\u0433\u043e\u0439 \u043f\u0443\u0442\u044c else:   if csrf_token.get(\"success\") != None:     headers[\"x-csrftoken\"] = csrf_token.get(\"value\")     if csrf_token.get(\"error\"):       return csrf_token<\/code><\/pre>\n<p> \u041e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c POST-\u0437\u0430\u043f\u0440\u043e\u0441 \u0441 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438:<\/p>\n<pre><code class=\"python\"> login = r.post(login_url + \u201cajax\/\u201d, data=auth_data, headers=headers)  # \u0441\u0442\u0430\u0442\u0443\u0441 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c, \u0440\u0430\u0441\u043f\u0430\u0440\u0441\u0438\u0432 \u043e\u0442\u0432\u0435\u0442 \u043e\u0442 \u0441\u0435\u0440\u0432\u0435\u0440\u0430.  #\u0415\u0441\u043b\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 status: \u2018ok\u2019 \u0432 \u0441\u043b\u043e\u0432\u0430\u0440\u0435 response, \u0438 \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 UserId \u2013 \u0432\u0441\u0435 \u0445\u043e\u0440\u043e\u0448\u043e. # \u041d\u043e, \u0434\u043b\u044f \u043f\u0440\u043e\u0441\u0442\u043e\u0442\u044b, \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u0438\u0441\u044c \u043b\u0438\u043a\u0443\u043a\u0438 \"sessionid\" if log_in.cookies.get(\"sessionid\"): return {'success': 'ok', 'response': log_in.content}<\/code><\/pre>\n<p>\u041f\u043e\u043b\u043d\u044b\u0439 \u043e\u0442\u0432\u0435\u0442 \u0434\u043e\u043b\u0436\u0435\u043d \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u043a\u0430\u043a-\u0442\u043e \u0442\u0430\u043a:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/3fd\/ac1\/438\/3fdac1438b58fa84b5302be019e118d7.png\" alt=\"\u0423\u0441\u043f\u0435\u0448\u043d\u044b\u0439 \u043e\u0442\u0432\u0435\u0442 \u043f\u043e\u043f\u044b\u0442\u043a\u0438 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438\" title=\"\u0423\u0441\u043f\u0435\u0448\u043d\u044b\u0439 \u043e\u0442\u0432\u0435\u0442 \u043f\u043e\u043f\u044b\u0442\u043a\u0438 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438\" width=\"654\" height=\"462\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/3fd\/ac1\/438\/3fdac1438b58fa84b5302be019e118d7.png\"\/><figcaption>\u0423\u0441\u043f\u0435\u0448\u043d\u044b\u0439 \u043e\u0442\u0432\u0435\u0442 \u043f\u043e\u043f\u044b\u0442\u043a\u0438 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438<\/figcaption><\/figure>\n<h3> \u0418\u0449\u0435\u043c csrf-\u0442\u043e\u043a\u0435\u043d \u0432\u0440\u0443\u0447\u043d\u0443\u044e<\/h3>\n<p> \u0415\u0441\u043b\u0438 \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f IP, \u0430\u0433\u0435\u043d\u0442, \u043f\u0430\u0440\u043e\u043b\u044c \u0438, \u043d\u0430\u0432\u0435\u0440\u043d\u044f\u043a\u0430, \u043a\u0430\u043a\u0438\u0435-\u0442\u043e \u0434\u0440\u0443\u0433\u0438\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043a\u043b\u0438\u0435\u043d\u0442\u0430 \u2013 \u0418\u043d\u0441\u0442\u0430\u0433\u0440\u0430\u043c \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f cookie. \u0421\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u043a\u0443\u043a\u0438 \u043d\u0435\u0442, \u0442\u043e\u043a\u0435\u043d\u0430 \u043d\u0435\u0442 \u0438 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u044b\u0439 POST-\u0437\u0430\u043f\u0440\u043e\u0441 \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u0435\u043d.<\/p>\n<p> \u0415\u0441\u043b\u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043e\u0442\u0432\u0435\u0442\u0430 \u043d\u0430 \u043f\u0435\u0440\u0432\u044b\u0439 GET-\u0437\u0430\u043f\u0440\u043e\u0441 \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 \/accounts\/login\/\u2013 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0442\u043e\u043a\u0435\u043d \u0432 \u0444\u043e\u0440\u043c\u0435 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/ff7\/28f\/7be\/ff728f7be9abae5fb3b5c6b34d91d4ca.png\" alt=\"csrf-\u0442\u043e\u043a\u0435\u043d \u0432 \u043e\u0442\u0432\u0435\u0442\u0435. 19 \u0433. \u0434\u043e \u043d. \u044d.\" title=\"csrf-\u0442\u043e\u043a\u0435\u043d \u0432 \u043e\u0442\u0432\u0435\u0442\u0435. 19 \u0433. \u0434\u043e \u043d. \u044d.\" width=\"891\" height=\"628\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/ff7\/28f\/7be\/ff728f7be9abae5fb3b5c6b34d91d4ca.png\"\/><figcaption>csrf-\u0442\u043e\u043a\u0435\u043d \u0432 \u043e\u0442\u0432\u0435\u0442\u0435. 19 \u0433. \u0434\u043e \u043d. \u044d.<\/figcaption><\/figure>\n<p> \u0414\u043b\u044f \u043f\u043e\u0438\u0441\u043a\u0430 \u0441\u0434\u0435\u043b\u0430\u0435\u043c \u043f\u0440\u043e\u0441\u0442\u0443\u044e \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043a\u0443, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043d\u0435 \u0431\u0443\u0434\u0443\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0441 \u044d\u0442\u0438\u043c \u043e\u0442\u0432\u0435\u0442\u043e\u043c:<\/p>\n<pre><code class=\"python\">import re  def response_parse(self, response): if response is not None: token = re.search('(csrf_token\":\")+(?P&lt;value>[A-Za-z0-9]*)', response) token_value = token.groupdict()      if token_value is not None: return {\"success\": \"ok\", \"value\": token_value.get(\"value\")}      return {\"error\": \"Unable to extrack token from response!\"}<\/code><\/pre>\n<p> \u041a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u043e, \u044d\u0442\u043e \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u043f\u0435\u0440\u0432\u043e\u0439 \u043f\u043e\u043f\u044b\u0442\u043a\u0438, \u043f\u043e\u0441\u043b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432. \u041f\u043e\u0447\u0435\u043c\u0443-\u0442\u043e \u043f\u043e\u0441\u043b\u0435 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u043a\u0443\u043a\u0438 \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0442 \u0432\u044b\u0434\u0430\u0432\u0430\u0442\u044c\u0441\u044f \u043a\u0430\u043a \u043e\u0431\u044b\u0447\u043d\u043e. \u041d\u041e, \u0432\u0430\u0436\u043d\u043e \u0441\u043b\u0435\u0434\u0438\u0442\u044c \u0437\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c \u0442\u043e\u043a\u0435\u043d\u0430 \u2013 \u043f\u043e\u0441\u043b\u0435 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u0433\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u043e\u043d \u0441\u043c\u0435\u043d\u0438\u0442\u0441\u044f \u0432 cookie \u0438, \u0445\u043e\u0440\u043e\u0448\u043e \u0431\u044b \u0435\u0433\u043e \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c.<\/p>\n<h3> \u201c\u0423\u043c\u043d\u044b\u0439\u201d \u0432\u044b\u0431\u043e\u0440 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f<\/h3>\n<p> \u0422\u0430\u043a \u043a\u0430\u043a \u0431\u043e\u0442 \u0441\u043e\u0437\u0434\u0430\u043d \u0441 \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0439 \u0446\u0435\u043b\u044c\u044e \u2013 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0434\u0435\u0432\u0443\u0448\u043a\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043f\u043e \u0443\u0442\u0440\u0430\u043c, \u0442\u043e \u0441\u0442\u043e\u0438\u043b\u043e \u0431\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0435\u043c\u0443 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u00ab\u043c\u043e\u0437\u0433\u043e\u0432\u00bb. \u0412\u043e\u043e\u0431\u0449\u0435, \u0441\u0445\u0435\u043c\u0430 \u043f\u043e\u0434\u0431\u043e\u0440\u0430 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e-\u0442\u0430\u043a\u0438 \u0442\u0440\u0438\u0432\u0438\u0430\u043b\u044c\u043d\u043e \u2013 \u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u0441\u043f\u0438\u0441\u043e\u043a \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u0444\u0440\u0430\u0437 \u0438\u0437 \u0444\u0430\u0439\u043b\u0430 \u0438 \u0440\u0430\u043d\u0434\u043e\u043c\u043d\u043e \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u0437\u0430\u0432\u0435\u0442\u043d\u0430\u044f.<\/p>\n<p> \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0441\u043a\u0440\u0438\u043f\u0442 \u0431\u0443\u0434\u0435\u0442 \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u043a\u0430\u0436\u0434\u044b\u0439 \u0434\u0435\u043d\u044c, \u0430 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043f\u043e\u043f\u0430\u0434\u0430\u044e\u0442\u0441\u044f \u0432\u0438\u0434\u0430 \u00ab\u0414\u043e\u0431\u0440\u043e\u0435 \u0443\u0442\u0440\u043e, \u0443\u0436\u0435 \u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0435?\u00bb &#8212; \u043b\u0443\u0447\u0448\u0435 \u0441\u043b\u0435\u0434\u0438\u0442\u044c \u0437\u0430 \u0442\u0435\u043c, \u0447\u0442\u043e\u0431\u044b \u0442\u0430\u043a\u043e\u0435 \u043d\u0435 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u043b\u043e\u0441\u044c \u0432 \u0432\u044b\u0445\u043e\u0434\u043d\u044b\u0435 \u0434\u043d\u0438, \u0438 \u043d\u0430\u043e\u0431\u043e\u0440\u043e\u0442.<\/p>\n<p> \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0441\u043b\u043e\u0432\u0430\u0440\u044c <em>conf.txt<\/em> \u0441 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u043c\u0438 \u0444\u0440\u0430\u0437\u0430\u043c\u0438 \u0432 \u043f\u0430\u043f\u043a\u0435 \u0440\u044f\u0434\u043e\u043c \u0441\u043e \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u043c \u0438 \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u0435\u043c \u0434\u043b\u044f \u043d\u0435\u0433\u043e \u043f\u0440\u043e\u0441\u0442\u0435\u0439\u0448\u0438\u0439 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441. \u041c\u043d\u0435 \u043f\u0440\u0438\u0448\u043b\u043e \u0432 \u0433\u043e\u043b\u043e\u0432\u0443 \u0432\u044b\u0434\u0435\u043b\u044f\u0442\u044c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0432\u044b\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u0434\u043d\u044f \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u043c \u201c@\u201d, \u0431\u0443\u0434\u043d\u0438\u0445 \u0434\u043d\u0435\u0439 &#8212; \u201c!\u201d, \u0430 \u0431\u043b\u043e\u043a\u0438 \u0431\u0435\u0437 \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u043a\u0430\u0436\u0434\u044b\u0439 \u0434\u0435\u043d\u044c. \u041d\u0443 \u0438 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438 (\u043a\u0443\u0434\u0430 \u0431\u0435\u0437 \u043d\u0438\u0445) &#8212; \u201c\/\u201d. \u041f\u0440\u0438\u043c\u0435\u0440 \u0441\u043b\u043e\u0432\u0430\u0440\u044f:<\/p>\n<pre><code>\u0421 \u0434\u043e\u0431\u0440\u044b\u043c \u0443\u0442\u0440\u043e\u043c &lt;3  ! \u041f\u0440\u0438\u0432\u0435\u0442, \u043a\u0430\u043a \u0434\u043e\u0431\u0440\u0430\u043b\u0430\u0441\u044c \u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0443? !  @ \u0414\u043e\u0431\u0440\u043e\u0435 \u0443\u0442\u0440\u043e, \u043a\u0430\u043a\u0438\u0435 \u043f\u043b\u0430\u043d\u044b \u043d\u0430 \u0434\u0435\u043d\u044c? @   \u00a0 \/\/ \u041a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439 \u0437\u0434\u0435\u0441\u044c. \u042d\u0442\u043e \u0432\u043e\u043e\u0431\u0449\u0435 \u043d\u0435 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f<\/code><\/pre>\n<h3> \u041e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0441\u043b\u043e\u0432\u0430\u0440\u044f \u0438 \u043f\u0441\u0435\u0432\u0434\u043e\u0440\u0430\u043d\u0434\u043e\u043c\u043d\u044b\u0439 \u0432\u044b\u0431\u043e\u0440<\/h3>\n<p> \u0417\u0430\u043d\u0438\u043c\u0430\u0442\u044c\u0441\u044f \u043f\u043e\u0434\u0431\u043e\u0440\u043e\u043c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0431\u0443\u0434\u0435\u0442 \u043a\u043b\u0430\u0441\u0441 MessageMaker. \u0412 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440 \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0442\u043e\u043b\u044c\u043a\u043e with as \u0434\u043b\u044f \u0447\u0442\u0435\u043d\u0438\u044f \u0441\u043b\u043e\u0432\u0430\u0440\u044f:<\/p>\n<pre><code class=\"python\">def\u00a0__init__(self): with\u00a0open(\"conf.txt\",\u00a0\"r\" as\u00a0get_f: self.get_f\u00a0=\u00a0get_f.read().split('\\n')<\/code><\/pre>\n<p> \u0414\u043b\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0434\u043d\u044f \u043d\u0435\u0434\u0435\u043b\u0438 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c <code>datetime.today().weekday()<\/code>:<\/p>\n<pre><code class=\"python\">day\u00a0=\u00a0datetime.today().weekday()  # \u0415\u0441\u043b\u0438 \u044d\u0442\u043e \u0432\u044b\u0445\u043e\u0434\u043d\u043e\u0439 if\u00a0day\u00a0>\u00a04: get_phrase\u00a0=\u00a0self.array_sort(array=self.get_f,\u00a0symbol=\"!\") \u00a0\u00a0 # \u0415\u0441\u043b\u0438 \u044d\u0442\u043e \u0431\u0443\u0434\u043d\u0438 if\u00a0day\u00a0&lt;\u00a05:   get_phrase\u00a0=\u00a0self.array_sort(array=self.get_f,\u00a0symbol=\"@\")   get_random_str\u00a0=\u00a0random.choice(get_phrase)<\/code><\/pre>\n<p> \u0424\u0443\u043d\u043a\u0446\u0438\u044f <code>array_sort()<\/code> \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 2 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430: \u043c\u0430\u0441\u0441\u0438\u0432 \u0441\u0442\u0440\u043e\u043a \u0438\u0437 <em>conf.txt<\/em> \u0438 \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044c, \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043d\u0443\u0436\u043d\u043e \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c. \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u043c \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0431\u0443\u0434\u0435\u0442 \u043d\u043e\u0432\u044b\u0439, \u043e\u0442\u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a, \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u043d\u0434\u043e\u043c\u043d\u043e \u0432\u044b\u0431\u0438\u0440\u0430\u0442\u044c \u043b\u044e\u0431\u0443\u044e \u0444\u0440\u0430\u0437\u0443 (\u0444\u0443\u043d\u043a\u0446\u0438\u044f <code>random.choice()<\/code>)<\/p>\n<p> \u0421\u0430\u043c\u0430 \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0430 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 <s>\u0443\u0436\u0430\u0441\u043d\u043e<\/s> \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a:<\/p>\n<pre><code class=\"python\">def\u00a0array_sort(self,\u00a0array,\u00a0symbol):   new_array\u00a0=\u00a0[]   counter\u00a0=\u00a00    for\u00a0string\u00a0in\u00a0array:     if\u00a0counter\u00a0>\u00a00:     # \u041e\u0431\u043d\u0443\u043b\u044f\u0435\u043c \u0441\u0447\u0435\u0442\u0447\u0438\u043a \u0435\u0441\u043b\u0438 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u043c \u0442\u0430\u043a\u043e\u0439 \u0436\u0435 \u0441\u0438\u043c\u0432\u043e\u043b \u0441\u043d\u043e\u0432\u0430       if\u00a0string\u00a0==\u00a0symbol:         counter\u00a0=\u00a00         continue          # \u041f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0432\u0441\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 \u043c\u0435\u0436\u0434\u0443 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u043c\u0438 \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044f\u043c\u0438     if\u00a0string\u00a0==\u00a0symbol:     counter\u00a0+=\u00a01      # \u0415\u0441\u043b\u0438 \u0443\u0441\u043b\u043e\u0432\u0438\u044f \u0443\u0434\u043e\u0432\u043b\u0435\u0442\u0432\u043e\u0440\u044f\u044e\u0442\u0441\u044f, \u0442\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u0442\u0440\u043e\u043a\u0443 \u0432 \u043d\u043e\u0432\u044b\u0439     # \u043c\u0430\u0441\u0441\u0438\u0432, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0439 \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0435 \u0444\u0440\u0430\u0437\u044b     if\u00a0string\u00a0!=\u00a0symbol\u00a0and\u00a0len(string)\u00a0>\u00a02\u00a0and\u00a0string[0]\u00a0!=\u00a0\"\/\":     new_array.append(string)    return\u00a0new_array<\/code><\/pre>\n<p> \u0422\u0435\u043f\u0435\u0440\u044c \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0433\u043b\u0430\u0432\u043d\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443:<\/p>\n<pre><code class=\"python\">def\u00a0select_str(self): get_random_str\u00a0=\u00a0self.almost_random_choice() \u00a0 if\u00a0get_random_str\u00a0!=\u00a0''\u00a0and\u00a0get_random_str\u00a0!=\u00a0None: return\u00a0get_random_str    return self.select_str()<\/code><\/pre>\n<p> \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 Instagram \u0441\u0430\u043c \u044d\u043a\u0440\u0430\u043d\u0438\u0440\u0443\u0435\u0442 \u0441\u0438\u043c\u0432\u043e\u043b\u044b \u0438 \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u0443\u0435\u0442 \u043b\u044e\u0431\u043e\u0439 \u0442\u0438\u043f \u0432 str \u2013 \u043d\u0435\u0442 \u043d\u0443\u0436\u0434\u044b \u043f\u0440\u0438\u043d\u0443\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442\u044c \u0438\u0445 \u0432\u0440\u0443\u0447\u043d\u0443\u044e.<\/p>\n<p> \u0422\u0435\u0441\u0442\u043e\u0432\u044b\u0439 \u0437\u0430\u043f\u0443\u0441\u043a <code>select_str()<\/code>:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/1b3\/af2\/d72\/1b3af2d72031d624bec32131992e67ea.png\" alt=\"\u041f\u043e\u0434\u0431\u043e\u0440 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f\" title=\"\u041f\u043e\u0434\u0431\u043e\u0440 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f\" width=\"654\" height=\"462\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/1b3\/af2\/d72\/1b3af2d72031d624bec32131992e67ea.png\"\/><figcaption>\u041f\u043e\u0434\u0431\u043e\u0440 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f<\/figcaption><\/figure>\n<h3> SendMsg \u2013 \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u0430\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0430 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f<\/h3>\n<p> \u0412 \u043a\u043b\u0430\u0441\u0441\u0435 SendMsg \u2013 Login \u0438 MessageMaker. \u0410 \u0442\u0430\u043a\u0436\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0432 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0445 \u043a\u043b\u0430\u0441\u0441\u043e\u0432:<\/p>\n<pre><code class=\"python\">class\u00a0SendMsg(Login,\u00a0MessageMaker): def\u00a0__init__(self, enc_password=False): super().__init__(enc_password=enc_password) MessageMaker().__init__()<\/code><\/pre>\n<p> \u0418, \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0432\u0435\u0441\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b. \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u044e send_message() \u0441 \u043d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u043c\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438:<\/p>\n<pre><code class=\"python\">def send_message(self, random_msg=None): pass<\/code><\/pre>\n<p> \u0415\u0441\u043b\u0438 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u0443\u043a\u0430\u0437\u0430\u043d\u043e \u043f\u0440\u044f\u043c\u043e \u0432 \u0432\u044b\u0437\u043e\u0432\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u2013 \u0442\u043e \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0437 \u0444\u0430\u0439\u043b\u0430 \u043d\u0435 \u0447\u0438\u0442\u0430\u044e\u0442\u0441\u044f, \u0438 \u043d\u0430\u043e\u0431\u043e\u0440\u043e\u0442. \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 random_msg \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u043b\u044e\u0431\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f.<\/p>\n<p> \u041b\u043e\u0433\u0438\u043d\u0438\u043c\u0441\u044f \u0438 \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u0441\u0435\u0441\u0441\u0438\u044e:<\/p>\n<pre><code class=\"python\">log_in = self.login()<\/code><\/pre>\n<p> \u0415\u0441\u043b\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0432\u0435\u0440\u043d\u0443\u043b\u0430 success \u0432 \u0441\u043b\u043e\u0432\u0430\u0440\u0435, \u0437\u043d\u0430\u0447\u0438\u0442, \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0442\u044c:<\/p>\n<pre><code class=\"python\">if\u00a0log_in.get(\"success\")\u00a0is\u00a0not\u00a0None: # Begin<\/code><\/pre>\n<p> \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c \u043d\u0430\u0431\u043e\u0440 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0434\u043b\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 POST \u0437\u0430\u043f\u0440\u043e\u0441\u0430:<\/p>\n<pre><code class=\"python\"># \u0441\u0441\u044b\u043b\u043a\u0430 \u0434\u043b\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f. \u041d\u0430\u0448\u0435\u043b \u0435\u0435 \u043d\u0430 \u0425\u0430\u0431\u0440\u0435 \u0438 \u0435\u0449\u0435 \u043d\u0430 \u043a\u0430\u043a\u043e\u043c-\u0442\u043e \u0441\u0430\u0439\u0442\u0435. send_mess_to_url\u00a0=\u00a0\"https:\/\/i.instagram.com\/api\/v1\/direct_v2\/threads\/broadcast\/text\/\"  # \u0413\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c \u043d\u043e\u0432\u044b\u0439 uuid v4. \u042d\u0442\u043e \u0442\u043e\u0436\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b Python uuid_v4\u00a0=\u00a0uuid.uuid4() \u00a0 # \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c, \u043a\u0430\u043a \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435. \u0415\u0441\u043b\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u0431\u044b\u043b \u0437\u0430\u0434\u0430\u043d \u2013 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043e\u043d if\u00a0random_msg\u00a0is\u00a0None: message\u00a0=\u00a0self.select_str()  else: message\u00a0= str(random_msg) enc_message = message.encode(\"utf-8\")  # \u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0442\u0435\u043b\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0430. \u041f\u043e\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u0432\u0441\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b. body\u00a0=\u00a0('text={}&amp;' +         '_uuid=&amp;' +         '_csrftoken={}&amp;' +         'recipient_users=\"[[\"{}\"]]\"&amp;' +         'action=send_item&amp;' +         'thread_ids=[\"0\"]&amp;' + '         'client_context={}').format(enc_message.decode(\"latin-1\"),\u00a0self.session.cookies[\"csrftoken\"],\u00a0user_id,\u00a0uuid_v4) \u00a0 # \u0418 \u0432\u0441\u0435 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0438 headers\u00a0=\u00a0self.session.headers headers[\"Content-Type\"]\u00a0=\u00a0\"application\/x-www-form-urlencoded\" headers[\"x-csrftoken\"]\u00a0=\u00a0self.session.cookies[\"csrftoken\"]  # Ig-App-ID \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0432 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u043a \u0418\u043d\u0441\u0442\u0430\u0433\u0440\u0430\u043c. \u041e\u043d \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0432\u0440\u0435\u043c\u044f \u043e\u0442 \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u043d\u043e \u043d\u0435 \u0447\u0430\u0441\u0442\u043e. headers[\"X-IG-App-ID\"]\u00a0=\u00a0\"936619743392459\"<\/code><\/pre>\n<p> \u00a0\u041f\u043e\u0437\u0436\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 X-IG-App-ID. \u0422\u0430\u043a \u043a\u0430\u043a \u043e\u043d \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0432 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430\u0445 \u043f\u043e\u0441\u043b\u0435 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u0439 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438. \u041d\u0435 \u0441\u043b\u043e\u0436\u043d\u043e \u0441\u0432\u0435\u0440\u0438\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0438 \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c, \u0435\u0441\u043b\u0438 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f.<\/p>\n<p> \u0418 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u0437\u0430\u043f\u0440\u043e\u0441:<\/p>\n<pre><code class=\"python\">send_m\u00a0=\u00a0self.session.post(send_mess_to_url,\u00a0data=body,\u00a0headers=headers)<\/code><\/pre>\n<p> \u0415\u0449\u0435 \u0436\u0435\u043b\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u0435\u0439\u0448\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0447\u0438\u0441\u0442\u043e \u0434\u043b\u044f \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u0438\u044f \u043e\u0442\u043b\u0430\u0434\u043a\u0438. \u0422\u0430\u043a \u043a\u0430\u043a \u0441\u043a\u0440\u0438\u043f\u0442 \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u2013  \u0445\u043e\u0440\u043e\u0448\u043e \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u0432\u0441\u0435 \u0447\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442:  <\/p>\n<pre><code class=\"python\">def _log(*args, **kwargs): if args: for i in args: string = string + ' ' + str(i)            if kwargs: for key, value in kwargs: string = string + ' ' + str(value)  with open(\"log.log\", \"a\") as f: print(string, file=f) <\/code><\/pre>\n<p> \u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0438 \u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043b\u043e\u0433:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/9fc\/5f7\/5e7\/9fc5f75e742f809626cbcfa96ade6edd.png\" alt=\"\u0421\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u0431\u044b\u043b\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043e \u043d\u0430 \u043c\u043e\u0439 \u0432\u0442\u043e\u0440\u043e\u0439 \u0430\u043a\u043a\u0430\u0443\u043d\u0442\" title=\"\u0421\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u0431\u044b\u043b\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043e \u043d\u0430 \u043c\u043e\u0439 \u0432\u0442\u043e\u0440\u043e\u0439 \u0430\u043a\u043a\u0430\u0443\u043d\u0442\" width=\"891\" height=\"628\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/9fc\/5f7\/5e7\/9fc5f75e742f809626cbcfa96ade6edd.png\"\/><figcaption>\u0421\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u0431\u044b\u043b\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043e \u043d\u0430 \u043c\u043e\u0439 \u0432\u0442\u043e\u0440\u043e\u0439 \u0430\u043a\u043a\u0430\u0443\u043d\u0442<\/figcaption><\/figure>\n<p>\u0421\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u043b\u043e\u0441\u044c. \u0412\u0438\u0434\u043d\u0430 \u0434\u0430\u0442\u0430 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438, \u0441\u0442\u0430\u0442\u0443\u0441-\u043a\u043e\u0434 \u0438 \u0442\u0435\u043a\u0441\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u044b\u043b \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d. \u042d\u0442\u043e\u0433\u043e \u0441 \u0433\u043e\u043b\u043e\u0432\u043e\u0439 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e, \u0447\u0442\u043e\u0431\u044b \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0438\u043b\u0438 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0432\u044b\u0431\u043e\u0440 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u043d\u0434\u043e\u043c\u043d\u044b\u043c, \u043d\u043e \u0435\u0449\u0435 \u0438 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u044b\u043c \u043e\u0442 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e \u0434\u043d\u044f.<\/p>\n<h3> \u041c\u0435\u043d\u0435\u0434\u0436\u0435\u0440 \u0437\u0430\u043f\u0443\u0441\u043a\u0430<\/h3>\n<p> \u0414\u043b\u044f \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430 \u0437\u0430\u043f\u0443\u0441\u043a\u0430, \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440 \u0441\u043a\u0440\u0438\u043f\u0442\u0430 \u2013 <code>insta_bot_manager.py<\/code> \u0438 \u043f\u043e\u043c\u0435\u0441\u0442\u0438\u043c \u0435\u0433\u043e \u0432 \u043f\u0430\u043f\u043a\u0443 \u0440\u044f\u0434\u043e\u043c \u0441 <code>insta_bot.py.<\/code><\/p>\n<p> \u0420\u0430\u0437\u043c\u0435\u0441\u0442\u0438\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u044e-\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0438 \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u043c \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u0434\u0443\u043b\u044c:<\/p>\n<pre><code class=\"python\">from insta_bot import SendMsg import os  def __send__(enc_password=None, random_msg=None): #\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 \u043a\u043b\u0430\u0441\u0441\u0430 s = SendMsg(enc_password=enc_password)    # \u041e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 return s.send_message(random_msg=random_msg) \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0  \u00a0 if __name__ == \u201c__main__\u201d: # \u041c\u043e\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b enc_password \u0438 random_msg __send__()<\/code><\/pre>\n<p>\u0410 \u0442\u0430\u043a\u0436\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u0430 <em>auth.txt. <\/em>\u041f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u044d\u0442\u043e \u0432\u0441\u0435 \u0431\u0435\u0437 \u0434\u0430\u043d\u043d\u044b\u0445 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u0441\u043c\u044b\u0441\u043b\u0430:<\/p>\n<pre><code class=\"python\">def _conf_check(): file_check = os.path.exists( os.path.dirname( os.path.abspath(__file__)) + \"\/auth.txt\")      if not file_check: raise Exception(\"You must create\/or fill the auth.txt file!\")      return 1<\/code><\/pre>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0435\u0441\u043b\u0438 <em>auth.txt <\/em>\u043f\u043e \u043a\u0430\u043a\u0438\u043c-\u0442\u043e \u043f\u0440\u0438\u0447\u0438\u043d\u0430\u043c \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 &#8212; \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0434\u043d\u044f\u0442\u043e \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435.<\/p>\n<h3>\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0432 Cron<\/h3>\n<p> \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u044f \u043d\u0435 \u0445\u043e\u0442\u0435\u043b \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c <em>insta_bot_manager.py<\/em> \u0448\u0435\u0431\u0430\u043d\u0433\u0438 bash, \u0442\u043e \u0440\u0435\u0448\u0438\u043b \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0435\u0449\u0435 \u043e\u0434\u0438\u043d launcher \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0434\u043b\u044f Cron.<\/p>\n<p> \u0412 \u043f\u0430\u043f\u043a\u0435 \u0441\u043e \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u043c \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u0444\u0430\u0439\u043b <em>launcher<\/em>:<\/p>\n<p> <code>$ touch launcher &amp;&amp; nano launcher<\/code><\/p>\n<p> \u0414\u043e\u0431\u0430\u0432\u0438\u043c \u0447\u0442\u043e-\u0442\u043e \u0442\u0430\u043a\u043e\u0435:<\/p>\n<pre><code class=\"bash\">#!\/bin\/bash sleep $[RANDOM%70]m \/usr\/bin\/python3.6 \/home\/path\/to\/insta_bot.manager.py<\/code><\/pre>\n<p> \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f, \u043f\u0435\u0440\u0435\u0434 \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u043c \u0437\u0430\u043f\u0443\u0441\u043a\u043e\u043c \u0441\u043a\u0440\u0438\u043f\u0442 \u0437\u0430\u0441\u044b\u043f\u0430\u0435\u0442 \u043d\u0430 \u0440\u0430\u043d\u0434\u043e\u043c\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0434\u043e 70 \u043c\u0438\u043d\u0443\u0442.<\/p>\n<p> \u0412\u043e\u043e\u0431\u0449\u0435, \u043f\u0440\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0438 \u0432 cron \u0441\u0442\u043e\u0438\u0442 \u043f\u0440\u043e\u0441\u043b\u0435\u0434\u0438\u0442\u044c \u0437\u0430 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c\u0438 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f. \u0412 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438 &#8212; PWD. \u042f \u043f\u043e\u043b\u0443\u0447\u0430\u043b \u043e\u0448\u0438\u0431\u043a\u0438 \u0438\u0437-\u0437\u0430 \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u044f \u0434\u043e\u043c\u0430\u0448\u043d\u0435\u0439 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u0438 \u043f\u0430\u043f\u043a\u0438 \u0441\u043e \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u043c. \u0414\u043b\u044f \u0435\u0435 \u0443\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0438\u043a\u043e\u043b\u0445\u043e\u0437\u0438\u0442\u044c, \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0435\u0440\u0432\u043e\u0439, \u043a\u043e\u043c\u0430\u043d\u0434\u0443 cd \u0441 \u043f\u043e\u043b\u043d\u044b\u043c \u043f\u0443\u0442\u0435\u043c \u043a \u043f\u0430\u043f\u043a\u0435.<\/p>\n<h3> \u0412\u044b\u0432\u043e\u0434\u044b<\/h3>\n<p> \u0421\u0442\u043e\u0438\u0442 \u0431\u044b\u0442\u044c \u043e\u0441\u0442\u043e\u0440\u043e\u0436\u043d\u044b\u043c, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0442\u0430\u043a\u0430\u044f \u0440\u0430\u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0435 \u0441\u043e\u0432\u0441\u0435\u043c \u043b\u0435\u0433\u0430\u043b\u044c\u043d\u0430 \u0438, \u0432\u0440\u043e\u0434\u0435 \u043a\u0430\u043a, \u043c\u043e\u0436\u043d\u043e \u0445\u0432\u0430\u0442\u0430\u043d\u0443\u0442\u044c \u0431\u0430\u043d\u0445\u0430\u043c\u043c\u0435\u0440\u043e\u043c \u0418\u043d\u0441\u0442\u0430\u0433\u0440\u0430\u043c\u043c\u0430 \u043f\u043e \u043b\u0438\u0446\u0443. \u041e\u0434\u043d\u0430\u043a\u043e, \u043a\u0430\u043a \u043c\u043d\u0435 \u043a\u0430\u0436\u0435\u0442\u0441\u044f, \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0430 1-2 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439 \u0432 \u0441\u0443\u0442\u043a\u0438 \u043d\u0430 \u043e\u0434\u0438\u043d \u0438 \u0442\u043e\u0442 \u0436\u0435 ID \u043d\u0435 \u0432\u044b\u0437\u043e\u0432\u0435\u0442 \u043f\u043e\u0434\u043e\u0437\u0440\u0435\u043d\u0438\u0439. \u041b\u0438\u0447\u043d\u043e \u044f \u0437\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043d\u0435\u0434\u0435\u043b\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0431\u043e\u0442\u0430 \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u043b \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0439, \u043d\u043e \u043c\u0430\u043b\u043e \u043b\u0438.<\/p>\n<p> \u041d\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u0430 \u0440\u0435\u0430\u043a\u0446\u0438\u044f \u0434\u0435\u0432\u0443\u0448\u043a\u0438 \u043d\u0430 \u0442\u0430\u043a\u043e\u0435. \u0421 \u043e\u0434\u043d\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u2013 \u0431\u043e\u0442 \u0441\u0434\u0435\u043b\u0430\u043d \u0441 \u043b\u044e\u0431\u043e\u0432\u044c\u044e \u0438 \u0448\u043b\u0435\u0442 \u043f\u0440\u0438\u044f\u0442\u043d\u043e\u0441\u0442\u0438, \u0441 \u0434\u0440\u0443\u0433\u043e\u0439 \u2013 \u044d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u0439\u0442\u0438 \u043f\u043e \u0441\u0442\u0430\u0442\u044c\u0435 \u00ab\u041d\u0430\u043f\u043b\u0435\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0435 \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435\u00bb. \u041d\u043e \u043f\u043e\u043a\u0430 \u0447\u0442\u043e \u043f\u043e\u043b\u0435\u0442 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u044b\u0439, \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u0447\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0434\u0430\u043b\u044c\u0448\u0435. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0432 \u0431\u0443\u0434\u0443\u0449\u0435\u043c \u043c\u043d\u0435 \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u0441\u043b\u0430\u0442\u044c \u0433\u043e\u043b\u043e\u0441\u043e\u0432\u044b\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \ud83d\ude42<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/d5f\/3b2\/d1f\/d5f3b2d1f85c939e50d587b71d173c8a.png\" alt=\"\u041f\u0440\u0438\u043c\u0435\u0440 \u0440\u0430\u0431\u043e\u0442\u044b\" title=\"\u041f\u0440\u0438\u043c\u0435\u0440 \u0440\u0430\u0431\u043e\u0442\u044b\" width=\"600\" height=\"1300\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/d5f\/3b2\/d1f\/d5f3b2d1f85c939e50d587b71d173c8a.png\"\/><figcaption>\u041f\u0440\u0438\u043c\u0435\u0440 \u0440\u0430\u0431\u043e\u0442\u044b<\/figcaption><\/figure>\n<p><a href=\"https:\/\/github.com\/palachintosh\/insta_bot\" rel=\"noopener noreferrer nofollow\"> \u041a\u043e\u0434 \u043d\u0430 GitHub<\/a><\/p>\n<p> <a href=\"https:\/\/habr.com\/ru\/post\/486714\/\" rel=\"noopener noreferrer nofollow\">\u0421\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u0441\u0442\u0430\u0442\u044c\u044e \u043d\u0430 \u0425\u0430\u0431\u0440\u0435<\/a><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><br \/> \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\/articles\/579732\/\"> https:\/\/habr.com\/ru\/articles\/579732\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p> \u041d\u0435\u0434\u0430\u0432\u043d\u043e \u043c\u044b \u0441 \u0434\u0435\u0432\u0443\u0448\u043a\u043e\u0439 \u0441\u0435\u0440\u044c\u0435\u0437\u043d\u043e \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043b\u0438 \u0438 \u0432\u044b\u044f\u0441\u043d\u0438\u043b\u043e\u0441\u044c, \u0447\u0442\u043e \u044f \u0434\u0430\u0436\u0435 \u043d\u0435 \u043f\u0438\u0448\u0443 \u0435\u0439 \u201c\u0421 \u0434\u043e\u0431\u0440\u044b\u043c \u0443\u0442\u0440\u043e\u043c\u201d \u0438 \u0432\u043e\u043e\u0431\u0449\u0435 \u0440\u0435\u0434\u043a\u043e \u043f\u0438\u0448\u0443 \u043f\u043e \u0443\u0442\u0440\u0430\u043c. \u0412 \u0446\u0435\u043b\u043e\u043c, \u043f\u0440\u0438\u0447\u0438\u043d\u0430 \u043a\u0440\u043e\u0435\u0442\u0441\u044f \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u044f \u043d\u0435 \u043f\u0440\u043e\u0441\u044b\u043f\u0430\u044e\u0441\u044c \u0441 \u0432\u043e\u0441\u0445\u043e\u0434\u043e\u043c \u043f\u0435\u0440\u0432\u044b\u0445 \u043b\u0443\u0447\u0435\u0439 \u0441\u043e\u043b\u043d\u0446\u0430 (\u043a\u0430\u043a \u043e\u043d\u0430), \u0430 \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u043b\u044e\u0431\u043b\u044e. \u041d\u0443 \u0430 \u0435\u0439, \u043a\u043e\u043d\u0435\u0447\u043d\u043e \u0436\u0435, \u043f\u0440\u0438\u044f\u0442\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u043d\u0435\u0436\u043d\u043e\u0441\u0442\u0438 \u043f\u043e \u0443\u0442\u0440\u0430\u043c \u0438 \u0432\u0441\u0435 \u0442\u0430\u043a\u043e\u0435.<\/p>\n<p> \u0422\u0430\u043a \u043a\u0430\u043a \u043e\u0431\u0449\u0430\u0435\u043c\u0441\u044f \u043c\u044b \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0432 Instagram, \u044f \u043f\u043e\u0434\u0443\u043c\u0430\u043b, \u0447\u0442\u043e \u043d\u0435\u043f\u043b\u043e\u0445\u043e \u0431\u044b \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u0432\u0441\u0435 \u044d\u0442\u043e \u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441. \u0422\u0435\u043c \u0431\u043e\u043b\u0435\u0435 \u0447\u0442\u043e \u0443 \u0441\u043e\u0446\u0441\u0435\u0442\u0438 \u0432\u0440\u043e\u0434\u0435 \u043a\u0430\u043a \u0435\u0441\u0442\u044c \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0439 API.<\/p>\n<p> \u041a\u0430\u043a \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c, \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u043e\u0433\u043e \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0433\u043e API \u0442\u0430\u043c \u043d\u0435\u0442, \u0430 \u0442\u043e\u0442 \u0447\u0442\u043e \u0435\u0441\u0442\u044c \u2013 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0431\u0438\u0437\u043d\u0435\u0441-\u0430\u043a\u043a\u0430\u0443\u043d\u0442\u044b. \u041d\u043e \u0442\u0430\u043a \u0438\u043b\u0438 \u0438\u043d\u0430\u0447\u0435 &#8212; \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c.<\/p>\n<details class=\"spoiler\">\n<summary><\/summary>\n<div class=\"spoiler__content\">\n<p> \u042f \u0443\u0432\u0435\u0440\u0435\u043d, \u0447\u0442\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u0441\u0435\u0440\u0432\u0438\u0441\u044b \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e, \u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u0440\u0430\u0431\u043e\u0447\u0435\u0433\u043e \u0431\u043e\u0442\u0430 \u0432\u043e\u0442 \u043f\u0440\u044f\u043c\u043e \u043e\u0447\u0435\u043d\u044c \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c. \u042f \u043d\u0430\u0448\u0435\u043b \u043d\u0430 \u0425\u0430\u0431\u0440\u0435 \u0441\u0442\u0430\u0442\u044c\u044e \u043f\u0440\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0443 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439 \u043d\u0430 PHP \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0432\u0437\u044f\u043b \u0430\u0434\u0440\u0435\u0441 \u0434\u043b\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 (\u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u0441\u0442\u0430\u0442\u044c\u044e \u0432 \u043a\u043e\u043d\u0446\u0435). \u0410 \u0437\u0434\u0435\u0441\u044c \u044f \u043f\u043e\u0441\u0442\u0430\u0440\u0430\u044e\u0441\u044c \u043e\u043f\u0438\u0441\u0430\u0442\u044c, \u043f\u043e \u0441\u0443\u0442\u0438, \u0442\u043e\u0442 \u0436\u0435 \u043f\u0440\u043e\u0446\u0435\u0441\u0441, \u043d\u043e \u043d\u0430 \u041f\u0438\u0442\u043e\u043d\u0435 \u0441 \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u043e\u0439 \u0434\u043e\u0440\u0430\u0431\u043e\u0442\u043a\u043e\u0439. \u0422\u043e\u0442 \u0436\u0435 \u0431\u043e\u0442, \u0441 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u043c \u043d\u0430\u0431\u043e\u0440\u043e\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u0439. \u041c\u043e\u0436\u0435\u0442, \u043a\u043e\u043c\u0443-\u0442\u043e \u043f\u0440\u0438\u0433\u043e\u0434\u0438\u0442\u0441\u044f.<\/p>\n<p> \u041f\u043e\u043b\u043d\u044b\u0439 \u043a\u043e\u0434 \u0438 README \u043d\u0430 Github, \u0430 \u043d\u0438\u0436\u0435 &#8212; \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u043c\u043e\u043c\u0435\u043d\u0442\u044b.<\/p>\n<\/div>\n<\/details>\n<h3>\u0421\u0445\u0435\u043c\u0430 \u0441\u043a\u0440\u0438\u043f\u0442\u0430<\/h3>\n<p> \u0414\u043b\u044f \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u043a\u043e\u0434\u0430 \u0438 \u043a\u0430\u043a\u043e\u0439-\u043d\u0438\u043a\u0430\u043a\u043e\u0439 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u0430 \u0432 \u0431\u0443\u0434\u0443\u0449\u0435\u043c, \u0441\u043a\u0440\u0438\u043f\u0442 \u0440\u0430\u0437\u0431\u0438\u043b\u0441\u044f \u043d\u0430 3 \u043a\u043b\u0430\u0441\u0441\u0430:<\/p>\n<ol>\n<li>\n<p>Login \u2013 \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u0437\u0430 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044e \u0438 \u0441\u043e\u0437\u0434\u0430\u0435\u0442 \u0441\u0435\u0441\u0441\u0438\u044e;<\/p>\n<\/li>\n<li>\n<p>MessageMaker \u2013 \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f;<\/p>\n<\/li>\n<li>\n<p>SendMsg \u2013 \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u0430\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0430 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f.<\/p>\n<\/li>\n<\/ol>\n<p> \u0418 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e, 2 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u0430 <em>auth.txt<\/em> \u0438 <em>conf.txt<\/em>: \u0434\u0430\u043d\u043d\u044b\u0435 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u0438 \u0441\u043b\u043e\u0432\u0430\u0440\u044c \u0441 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f\u043c\u0438 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0438 \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u2013 <em>insta_bot_manager.py<\/em>. <\/p>\n<figure class=\"bordered\"><figcaption>\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438<\/figcaption><\/figure>\n<h3>\u041a\u043b\u0430\u0441\u0441 Login &#8212; \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044f<\/h3>\n<p>\u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044f Instagram. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0438\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043f\u0440\u044f\u043c \u0432 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u0445 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430:<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p> \u041a\u0430\u043a \u0432\u0438\u0434\u043d\u043e \u2013 \u0437\u0430\u043f\u0440\u043e\u0441 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0430 \u0430\u0434\u0440\u0435\u0441 <a href=\"https:\/\/www.instagram%20.com\/accounts\/login\/ajax\/\" rel=\"noopener noreferrer nofollow\">https:\/\/www.instagram .com\/accounts\/login\/ajax\/<\/a>, \u0434\u0430 \u0438 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e. \u041d\u0435\u0442 \u043d\u0438 \u0442\u043e\u043a\u0435\u043d\u043e\u0432, \u043d\u0438 \u043a\u0430\u043a\u0438\u0445-\u0442\u043e \u043b\u0435\u0432\u044b\u0445 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432. \u0412\u043e\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0430\u0440\u043e\u043b\u044c \u0432 \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u043c \u0432\u0438\u0434\u0435. \u041a\u0430\u043a \u044f \u0432\u044b\u044f\u0441\u043d\u0438\u043b, \u044d\u0442\u043e \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0430 AES-GCM256, \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u0441 \u043a\u0430\u043a\u0438\u043c-\u0442\u043e \u043f\u0440\u0435\u0444\u0438\u043a\u0441\u043e\u043c. \u0421\u0442\u0440\u043e\u043a\u0430 \u0438\u0437 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:<\/p>\n<p> <code>#PWD_INSTAGRAM_BROWSER:10:16940921:enc_password<\/code><\/p>\n<p> \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 &#171;10&#187; &#8212; \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u043f\u0430\u0440\u043e\u043b\u044c \u0432 \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u043c \u0432\u0438\u0434\u0435, \u0434\u0430\u043b\u0435\u0435 &#8212; \u0432\u0440\u0435\u043c\u044f \u0438 \u0441\u0430\u043c \u043f\u0430\u0440\u043e\u043b\u044c. \u0414\u0435\u043b\u0430\u0442\u044c \u0441\u0432\u043e\u0439 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043b\u044c\u0449\u0438\u043a \u044f, \u043a\u043e\u043d\u0435\u0447\u043d\u043e \u0436\u0435, \u043d\u0435 \u0431\u0443\u0434\u0443, \u043d\u043e \u0435\u0441\u0442\u044c \u0438 \u0434\u0440\u0443\u0433\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0437\u0430\u043b\u043e\u0433\u0438\u043d\u0438\u0442\u044c\u0441\u044f \u0441 \u043f\u0430\u0440\u043e\u043b\u0435\u043c \u0432 \u0447\u0438\u0441\u0442\u043e\u043c \u0432\u0438\u0434\u0435. \u0414\u043b\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u043e\u0431\u044b\u0447\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c &#171;10&#187; \u043d\u0430 &#171;0&#187;:<\/p>\n<p> <code>#PWD_INSTAGRAM_BROWSER:0:1690149:password<\/code>\u00a0<\/p>\n<p> \u0414\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0444\u0430\u0439\u043b \u2013 <em>auth.txt<\/em>. \u0417\u043d\u0430\u044e, \u0447\u0442\u043e \u043b\u0443\u0447\u0448\u0435 \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u044d\u0442\u043e \u0432\u0441\u0435 \u0432 \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u043c \u0432\u0438\u0434\u0435, \u043d\u043e \u0442\u0430\u043a \u043a\u0430\u043a \u0434\u0430\u043d\u043d\u044b\u0435 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u2013 \u044d\u0442\u043e \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e.<\/p>\n<p> \u041a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f <em>auth.txt<\/em> \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:<\/p>\n<ol>\n<li>\n<p>Login<\/p>\n<\/li>\n<li>\n<p>Password<\/p>\n<\/li>\n<li>\n<p>Ig_user_id (id \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435)<\/p>\n<\/li>\n<\/ol>\n<p> \u041f\u0440\u043e\u0441\u0442\u043e \u0442\u0435\u043a\u0441\u0442. \u041a\u0430\u0436\u0434\u044b\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0437\u0430\u043f\u0438\u0441\u0430\u043d \u0441 \u043d\u043e\u0432\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438. \u0427\u0438\u0442\u0430\u0435\u043c \u0438\u0437 \u0444\u0430\u0439\u043b\u0430:<\/p>\n<pre><code class=\"python\">with\u00a0open(\"auth.txt\",\u00a0\"r\")\u00a0as\u00a0f:   l\u00a0=\u00a0f.read().split(\"\\n\")   username\u00a0=\u00a0l[0]   passwd\u00a0=\u00a0l[1]   self.user_id\u00a0=\u00a0l[2]  <\/code><\/pre>\n<p> \u0422\u0435\u043f\u0435\u0440\u044c \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0443\u0435\u043c\u0441\u044f, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f <code>requests<\/code>:<\/p>\n<pre><code class=\"python\"># \u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430, \u043f\u043e\u043b\u0443\u0447\u0438\u043c csrf-token: r = requests()  # \u041c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u0443\u0441\u043e\u043a \u043f\u043e\u043b\u043d\u043e\u0439 \u0441\u0441\u044b\u043b\u043a\u0438 \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u0438\u043b\u0438 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441 \u043f\u0440\u044f\u043c\u043e \u043a https:\/\/www.instagram.com\/. login_url = \"https:\/\/www.instagram.com\/accounts\/login\/\"  # \u0412 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430\u0445 \u043c\u043e\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0441\u0432\u043e\u0439 user-agent. \u0412 \u0434\u0440\u0443\u0433\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442 \u043e\u043f\u043e\u0432\u0435\u0449\u0435\u043d\u0438\u0435 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043b\u0443\u0447\u0448\u0435 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u044c. # \u041f\u0440\u0438 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0438 \u0438\u043b\u0438 \u043a\u0430\u043a\u043e\u043c-\u0442\u043e \u043c\u0443\u0441\u043e\u0440\u0435 \u0432 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0435 User-Agent, IG \u043f\u0440\u0438\u0441\u044b\u043b\u0430\u0435\u0442 \u0432 \u043e\u0442\u0432\u0435\u0442\u0435 \u043e\u0448\u0438\u0431\u043a\u0443 \u201cmessage\u201d: \u201cuser-agent missmatch\u201d.  # \u0422\u0430\u043a \u043a\u0430\u043a \u0438\u043c\u0438\u0442\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0441\u0435\u0441\u0441\u0438\u044f \u2013 \u0441\u0440\u0430\u0437\u0443 \u0438\u0437\u043c\u0435\u043d\u0438\u043c user-agent \u043f\u0440\u044f\u043c\u043e \u0432 \u043e\u0431\u044a\u0435\u043a\u0442\u0435 \u0441\u0435\u0441\u0441\u0438\u0438. s = request.Session() s.headers[\"User-Agent\"] = (\"Mozilla\/5.0 (iPhone; CPU iPhone OS 14_1 like Mac OS X) \" +     \"AppleWebKit\/605.1.15 (KHTML, like Gecko) Mobile\/15E148 Instagram 142.0.0.22.109\" +    \"(iPhone12,5; iOS 14_1; en_US; en-US; scale=3.00; 1242x2688; 214888322) NW\/1\")  # \u041d\u0443 \u0438, \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0441\u0430\u043c \u0437\u0430\u043f\u0440\u043e\u0441 get_token = r.get(login_url, headers=headers)  if get_token.cookies.get(\"csrftoken\") is not None:   headers[\"x-csrftoken\"] = get_token.cookies[\"csrftoken\"]   #\u0415\u0441\u043b\u0438 \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c \u0432\u044b\u0442\u044f\u043d\u0443\u0442\u044c  \u0442\u043e\u043a\u0435\u043d \u0438\u0437 cookie \u2013 \u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0434\u0440\u0443\u0433\u043e\u0439 \u043f\u0443\u0442\u044c else:   if csrf_token.get(\"success\") != None:     headers[\"x-csrftoken\"] = csrf_token.get(\"value\")     if csrf_token.get(\"error\"):       return csrf_token<\/code><\/pre>\n<p> \u041e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c POST-\u0437\u0430\u043f\u0440\u043e\u0441 \u0441 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438:<\/p>\n<pre><code class=\"python\"> login = r.post(login_url + \u201cajax\/\u201d, data=auth_data, headers=headers)  # \u0441\u0442\u0430\u0442\u0443\u0441 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c, \u0440\u0430\u0441\u043f\u0430\u0440\u0441\u0438\u0432 \u043e\u0442\u0432\u0435\u0442 \u043e\u0442 \u0441\u0435\u0440\u0432\u0435\u0440\u0430.  #\u0415\u0441\u043b\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 status: \u2018ok\u2019 \u0432 \u0441\u043b\u043e\u0432\u0430\u0440\u0435 response, \u0438 \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 UserId \u2013 \u0432\u0441\u0435 \u0445\u043e\u0440\u043e\u0448\u043e. # \u041d\u043e, \u0434\u043b\u044f \u043f\u0440\u043e\u0441\u0442\u043e\u0442\u044b, \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u0438\u0441\u044c \u043b\u0438\u043a\u0443\u043a\u0438 \"sessionid\" if log_in.cookies.get(\"sessionid\"): return {'success': 'ok', 'response': log_in.content}<\/code><\/pre>\n<p>\u041f\u043e\u043b\u043d\u044b\u0439 \u043e\u0442\u0432\u0435\u0442 \u0434\u043e\u043b\u0436\u0435\u043d \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u043a\u0430\u043a-\u0442\u043e \u0442\u0430\u043a:<\/p>\n<figure class=\"full-width\"><figcaption>\u0423\u0441\u043f\u0435\u0448\u043d\u044b\u0439 \u043e\u0442\u0432\u0435\u0442 \u043f\u043e\u043f\u044b\u0442\u043a\u0438 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438<\/figcaption><\/figure>\n<h3> \u0418\u0449\u0435\u043c csrf-\u0442\u043e\u043a\u0435\u043d \u0432\u0440\u0443\u0447\u043d\u0443\u044e<\/h3>\n<p> \u0415\u0441\u043b\u0438 \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f IP, \u0430\u0433\u0435\u043d\u0442, \u043f\u0430\u0440\u043e\u043b\u044c \u0438, \u043d\u0430\u0432\u0435\u0440\u043d\u044f\u043a\u0430, \u043a\u0430\u043a\u0438\u0435-\u0442\u043e \u0434\u0440\u0443\u0433\u0438\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043a\u043b\u0438\u0435\u043d\u0442\u0430 \u2013 \u0418\u043d\u0441\u0442\u0430\u0433\u0440\u0430\u043c \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f cookie. \u0421\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u043a\u0443\u043a\u0438 \u043d\u0435\u0442, \u0442\u043e\u043a\u0435\u043d\u0430 \u043d\u0435\u0442 \u0438 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u044b\u0439 POST-\u0437\u0430\u043f\u0440\u043e\u0441 \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u0435\u043d.<\/p>\n<p> \u0415\u0441\u043b\u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043e\u0442\u0432\u0435\u0442\u0430 \u043d\u0430 \u043f\u0435\u0440\u0432\u044b\u0439 GET-\u0437\u0430\u043f\u0440\u043e\u0441 \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 \/accounts\/login\/\u2013 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0442\u043e\u043a\u0435\u043d \u0432 \u0444\u043e\u0440\u043c\u0435 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438.<\/p>\n<figure class=\"full-width\"><figcaption>csrf-\u0442\u043e\u043a\u0435\u043d \u0432 \u043e\u0442\u0432\u0435\u0442\u0435. 19 \u0433. \u0434\u043e \u043d. \u044d.<\/figcaption><\/figure>\n<p> \u0414\u043b\u044f \u043f\u043e\u0438\u0441\u043a\u0430 \u0441\u0434\u0435\u043b\u0430\u0435\u043c \u043f\u0440\u043e\u0441\u0442\u0443\u044e \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043a\u0443, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043d\u0435 \u0431\u0443\u0434\u0443\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0441 \u044d\u0442\u0438\u043c \u043e\u0442\u0432\u0435\u0442\u043e\u043c:<\/p>\n<pre><code class=\"python\">import re  def response_parse(self, response): if response is not None: token = re.search('(csrf_token\":\")+(?P&lt;value>[A-Za-z0-9]*)', response) token_value = token.groupdict()      if token_value is not None: return {\"success\": \"ok\", \"value\": token_value.get(\"value\")}      return {\"error\": \"Unable to extrack token from response!\"}<\/code><\/pre>\n<p> \u041a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u043e, \u044d\u0442\u043e \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u043f\u0435\u0440\u0432\u043e\u0439 \u043f\u043e\u043f\u044b\u0442\u043a\u0438, \u043f\u043e\u0441\u043b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432. \u041f\u043e\u0447\u0435\u043c\u0443-\u0442\u043e \u043f\u043e\u0441\u043b\u0435 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u043a\u0443\u043a\u0438 \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0442 \u0432\u044b\u0434\u0430\u0432\u0430\u0442\u044c\u0441\u044f \u043a\u0430\u043a \u043e\u0431\u044b\u0447\u043d\u043e. \u041d\u041e, \u0432\u0430\u0436\u043d\u043e \u0441\u043b\u0435\u0434\u0438\u0442\u044c \u0437\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c \u0442\u043e\u043a\u0435\u043d\u0430 \u2013 \u043f\u043e\u0441\u043b\u0435 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u0433\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u043e\u043d \u0441\u043c\u0435\u043d\u0438\u0442\u0441\u044f \u0432 cookie \u0438, \u0445\u043e\u0440\u043e\u0448\u043e \u0431\u044b \u0435\u0433\u043e \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c.<\/p>\n<h3> \u201c\u0423\u043c\u043d\u044b\u0439\u201d \u0432\u044b\u0431\u043e\u0440 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f<\/h3>\n<p> \u0422\u0430\u043a \u043a\u0430\u043a \u0431\u043e\u0442 \u0441\u043e\u0437\u0434\u0430\u043d \u0441 \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0439 \u0446\u0435\u043b\u044c\u044e \u2013 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0434\u0435\u0432\u0443\u0448\u043a\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043f\u043e \u0443\u0442\u0440\u0430\u043c, \u0442\u043e \u0441\u0442\u043e\u0438\u043b\u043e \u0431\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0435\u043c\u0443 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u00ab\u043c\u043e\u0437\u0433\u043e\u0432\u00bb. \u0412\u043e\u043e\u0431\u0449\u0435, \u0441\u0445\u0435\u043c\u0430 \u043f\u043e\u0434\u0431\u043e\u0440\u0430 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e-\u0442\u0430\u043a\u0438 \u0442\u0440\u0438\u0432\u0438\u0430\u043b\u044c\u043d\u043e \u2013 \u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u0441\u043f\u0438\u0441\u043e\u043a \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u0444\u0440\u0430\u0437 \u0438\u0437 \u0444\u0430\u0439\u043b\u0430 \u0438 \u0440\u0430\u043d\u0434\u043e\u043c\u043d\u043e \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u0437\u0430\u0432\u0435\u0442\u043d\u0430\u044f.<\/p>\n<p> \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0441\u043a\u0440\u0438\u043f\u0442 \u0431\u0443\u0434\u0435\u0442 \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u043a\u0430\u0436\u0434\u044b\u0439 \u0434\u0435\u043d\u044c, \u0430 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043f\u043e\u043f\u0430\u0434\u0430\u044e\u0442\u0441\u044f \u0432\u0438\u0434\u0430 \u00ab\u0414\u043e\u0431\u0440\u043e\u0435 \u0443\u0442\u0440\u043e, \u0443\u0436\u0435 \u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0435?\u00bb &#8212; \u043b\u0443\u0447\u0448\u0435 \u0441\u043b\u0435\u0434\u0438\u0442\u044c \u0437\u0430 \u0442\u0435\u043c, \u0447\u0442\u043e\u0431\u044b \u0442\u0430\u043a\u043e\u0435 \u043d\u0435 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u043b\u043e\u0441\u044c \u0432 \u0432\u044b\u0445\u043e\u0434\u043d\u044b\u0435 \u0434\u043d\u0438, \u0438 \u043d\u0430\u043e\u0431\u043e\u0440\u043e\u0442.<\/p>\n<p> \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0441\u043b\u043e\u0432\u0430\u0440\u044c <em>conf.txt<\/em> \u0441 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u043c\u0438 \u0444\u0440\u0430\u0437\u0430\u043c\u0438 \u0432 \u043f\u0430\u043f\u043a\u0435 \u0440\u044f\u0434\u043e\u043c \u0441\u043e \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u043c \u0438 \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u0435\u043c \u0434\u043b\u044f \u043d\u0435\u0433\u043e \u043f\u0440\u043e\u0441\u0442\u0435\u0439\u0448\u0438\u0439 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441. \u041c\u043d\u0435 \u043f\u0440\u0438\u0448\u043b\u043e \u0432 \u0433\u043e\u043b\u043e\u0432\u0443 \u0432\u044b\u0434\u0435\u043b\u044f\u0442\u044c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0432\u044b\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u0434\u043d\u044f \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u043c \u201c@\u201d, \u0431\u0443\u0434\u043d\u0438\u0445 \u0434\u043d\u0435\u0439 &#8212; \u201c!\u201d, \u0430 \u0431\u043b\u043e\u043a\u0438 \u0431\u0435\u0437 \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u043a\u0430\u0436\u0434\u044b\u0439 \u0434\u0435\u043d\u044c. \u041d\u0443 \u0438 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438 (\u043a\u0443\u0434\u0430 \u0431\u0435\u0437 \u043d\u0438\u0445) &#8212; \u201c\/\u201d. \u041f\u0440\u0438\u043c\u0435\u0440 \u0441\u043b\u043e\u0432\u0430\u0440\u044f:<\/p>\n<pre><code>\u0421 \u0434\u043e\u0431\u0440\u044b\u043c \u0443\u0442\u0440\u043e\u043c &lt;3  ! \u041f\u0440\u0438\u0432\u0435\u0442, \u043a\u0430\u043a \u0434\u043e\u0431\u0440\u0430\u043b\u0430\u0441\u044c \u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0443? !  @ \u0414\u043e\u0431\u0440\u043e\u0435 \u0443\u0442\u0440\u043e, \u043a\u0430\u043a\u0438\u0435 \u043f\u043b\u0430\u043d\u044b \u043d\u0430 \u0434\u0435\u043d\u044c? @   \u00a0 \/\/ \u041a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439 \u0437\u0434\u0435\u0441\u044c. \u042d\u0442\u043e \u0432\u043e\u043e\u0431\u0449\u0435 \u043d\u0435 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f<\/code><\/pre>\n<h3> \u041e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0441\u043b\u043e\u0432\u0430\u0440\u044f \u0438 \u043f\u0441\u0435\u0432\u0434\u043e\u0440\u0430\u043d\u0434\u043e\u043c\u043d\u044b\u0439 \u0432\u044b\u0431\u043e\u0440<\/h3>\n<p> \u0417\u0430\u043d\u0438\u043c\u0430\u0442\u044c\u0441\u044f \u043f\u043e\u0434\u0431\u043e\u0440\u043e\u043c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0431\u0443\u0434\u0435\u0442 \u043a\u043b\u0430\u0441\u0441 MessageMaker. \u0412 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440 \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0442\u043e\u043b\u044c\u043a\u043e with as \u0434\u043b\u044f \u0447\u0442\u0435\u043d\u0438\u044f \u0441\u043b\u043e\u0432\u0430\u0440\u044f:<\/p>\n<pre><code class=\"python\">def\u00a0__init__(self): with\u00a0open(\"conf.txt\",\u00a0\"r\" as\u00a0get_f: self.get_f\u00a0=\u00a0get_f.read().split('\\n')<\/code><\/pre>\n<p> \u0414\u043b\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0434\u043d\u044f \u043d\u0435\u0434\u0435\u043b\u0438 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c <code>datetime.today().weekday()<\/code>:<\/p>\n<pre><code class=\"python\">day\u00a0=\u00a0datetime.today().weekday()  # \u0415\u0441\u043b\u0438 \u044d\u0442\u043e \u0432\u044b\u0445\u043e\u0434\u043d\u043e\u0439 if\u00a0day\u00a0>\u00a04: get_phrase\u00a0=\u00a0self.array_sort(array=self.get_f,\u00a0symbol=\"!\") \u00a0\u00a0 # \u0415\u0441\u043b\u0438 \u044d\u0442\u043e \u0431\u0443\u0434\u043d\u0438 if\u00a0day\u00a0&lt;\u00a05:   get_phrase\u00a0=\u00a0self.array_sort(array=self.get_f,\u00a0symbol=\"@\")   get_random_str\u00a0=\u00a0random.choice(get_phrase)<\/code><\/pre>\n<p> \u0424\u0443\u043d\u043a\u0446\u0438\u044f <code>array_sort()<\/code> \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 2 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430: \u043c\u0430\u0441\u0441\u0438\u0432 \u0441\u0442\u0440\u043e\u043a \u0438\u0437 <em>conf.txt<\/em> \u0438 \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044c, \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043d\u0443\u0436\u043d\u043e \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c. \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u043c \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0431\u0443\u0434\u0435\u0442 \u043d\u043e\u0432\u044b\u0439, \u043e\u0442\u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a, \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u043d\u0434\u043e\u043c\u043d\u043e \u0432\u044b\u0431\u0438\u0440\u0430\u0442\u044c \u043b\u044e\u0431\u0443\u044e \u0444\u0440\u0430\u0437\u0443 (\u0444\u0443\u043d\u043a\u0446\u0438\u044f <code>random.choice()<\/code>)<\/p>\n<p> \u0421\u0430\u043c\u0430 \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0430 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 <s>\u0443\u0436\u0430\u0441\u043d\u043e<\/s> \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a:<\/p>\n<pre><code class=\"python\">def\u00a0array_sort(self,\u00a0array,\u00a0symbol):   new_array\u00a0=\u00a0[]   counter\u00a0=\u00a00    for\u00a0string\u00a0in\u00a0array:     if\u00a0counter\u00a0>\u00a00:     # \u041e\u0431\u043d\u0443\u043b\u044f\u0435\u043c \u0441\u0447\u0435\u0442\u0447\u0438\u043a \u0435\u0441\u043b\u0438 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u043c \u0442\u0430\u043a\u043e\u0439 \u0436\u0435 \u0441\u0438\u043c\u0432\u043e\u043b \u0441\u043d\u043e\u0432\u0430       if\u00a0string\u00a0==\u00a0symbol:         counter\u00a0=\u00a00         continue          # \u041f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0432\u0441\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 \u043c\u0435\u0436\u0434\u0443 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u043c\u0438 \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044f\u043c\u0438     if\u00a0string\u00a0==\u00a0symbol:     counter\u00a0+=\u00a01      # \u0415\u0441\u043b\u0438 \u0443\u0441\u043b\u043e\u0432\u0438\u044f \u0443\u0434\u043e\u0432\u043b\u0435\u0442\u0432\u043e\u0440\u044f\u044e\u0442\u0441\u044f, \u0442\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u0442\u0440\u043e\u043a\u0443 \u0432 \u043d\u043e\u0432\u044b\u0439     # \u043c\u0430\u0441\u0441\u0438\u0432, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0439 \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0435 \u0444\u0440\u0430\u0437\u044b     if\u00a0string\u00a0!=\u00a0symbol\u00a0and\u00a0len(string)\u00a0>\u00a02\u00a0and\u00a0string[0]\u00a0!=\u00a0\"\/\":     new_array.append(string)    return\u00a0new_array<\/code><\/pre>\n<p> \u0422\u0435\u043f\u0435\u0440\u044c \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0433\u043b\u0430\u0432\u043d\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443:<\/p>\n<pre><code class=\"python\">def\u00a0select_str(self): get_random_str\u00a0=\u00a0self.almost_random_choice() \u00a0 if\u00a0get_random_str\u00a0!=\u00a0''\u00a0and\u00a0get_random_str\u00a0!=\u00a0None: return\u00a0get_random_str    return self.select_str()<\/code><\/pre>\n<p> \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 Instagram \u0441\u0430\u043c \u044d\u043a\u0440\u0430\u043d\u0438\u0440\u0443\u0435\u0442 \u0441\u0438\u043c\u0432\u043e\u043b\u044b \u0438 \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u0443\u0435\u0442 \u043b\u044e\u0431\u043e\u0439 \u0442\u0438\u043f \u0432 str \u2013 \u043d\u0435\u0442 \u043d\u0443\u0436\u0434\u044b \u043f\u0440\u0438\u043d\u0443\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442\u044c \u0438\u0445 \u0432\u0440\u0443\u0447\u043d\u0443\u044e.<\/p>\n<p> \u0422\u0435\u0441\u0442\u043e\u0432\u044b\u0439 \u0437\u0430\u043f\u0443\u0441\u043a <code>select_str()<\/code>:<\/p>\n<figure class=\"full-width\"><figcaption>\u041f\u043e\u0434\u0431\u043e\u0440 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f<\/figcaption><\/figure>\n<h3> SendMsg \u2013 \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u0430\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0430 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f<\/h3>\n<p> \u0412 \u043a\u043b\u0430\u0441\u0441\u0435 SendMsg \u2013 Login \u0438 MessageMaker. \u0410 \u0442\u0430\u043a\u0436\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0432 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0445 \u043a\u043b\u0430\u0441\u0441\u043e\u0432:<\/p>\n<pre><code class=\"python\">class\u00a0SendMsg(Login,\u00a0MessageMaker): def\u00a0__init__(self, enc_password=False): super().__init__(enc_password=enc_password) MessageMaker().__init__()<\/code><\/pre>\n<p> \u0418, \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0432\u0435\u0441\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b. \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u044e send_message() \u0441 \u043d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u043c\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438:<\/p>\n<pre><code class=\"python\">def send_message(self, random_msg=None): pass<\/code><\/pre>\n<p> \u0415\u0441\u043b\u0438 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u0443\u043a\u0430\u0437\u0430\u043d\u043e \u043f\u0440\u044f\u043c\u043e \u0432 \u0432\u044b\u0437\u043e\u0432\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u2013 \u0442\u043e \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0437 \u0444\u0430\u0439\u043b\u0430 \u043d\u0435 \u0447\u0438\u0442\u0430\u044e\u0442\u0441\u044f, \u0438 \u043d\u0430\u043e\u0431\u043e\u0440\u043e\u0442. \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 random_msg \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u043b\u044e\u0431\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f.<\/p>\n<p> \u041b\u043e\u0433\u0438\u043d\u0438\u043c\u0441\u044f \u0438 \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u0441\u0435\u0441\u0441\u0438\u044e:<\/p>\n<pre><code class=\"python\">log_in = self.login()<\/code><\/pre>\n<p> \u0415\u0441\u043b\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0432\u0435\u0440\u043d\u0443\u043b\u0430 success \u0432 \u0441\u043b\u043e\u0432\u0430\u0440\u0435, \u0437\u043d\u0430\u0447\u0438\u0442, \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0442\u044c:<\/p>\n<pre><code class=\"python\">if\u00a0log_in.get(\"success\")\u00a0is\u00a0not\u00a0None: # Begin<\/code><\/pre>\n<p> \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c \u043d\u0430\u0431\u043e\u0440 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0434\u043b\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 POST \u0437\u0430\u043f\u0440\u043e\u0441\u0430:<\/p>\n<pre><code class=\"python\"># \u0441\u0441\u044b\u043b\u043a\u0430 \u0434\u043b\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f. \u041d\u0430\u0448\u0435\u043b \u0435\u0435 \u043d\u0430 \u0425\u0430\u0431\u0440\u0435 \u0438 \u0435\u0449\u0435 \u043d\u0430 \u043a\u0430\u043a\u043e\u043c-\u0442\u043e \u0441\u0430\u0439\u0442\u0435. send_mess_to_url\u00a0=\u00a0\"https:\/\/i.instagram.com\/api\/v1\/direct_v2\/threads\/broadcast\/text\/\"  # \u0413\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c \u043d\u043e\u0432\u044b\u0439 uuid v4. \u042d\u0442\u043e \u0442\u043e\u0436\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b Python uuid_v4\u00a0=\u00a0uuid.uuid4() \u00a0 # \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c, \u043a\u0430\u043a \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435. \u0415\u0441\u043b\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u0431\u044b\u043b \u0437\u0430\u0434\u0430\u043d \u2013 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043e\u043d if\u00a0random_msg\u00a0is\u00a0None: message\u00a0=\u00a0self.select_str()  else: message\u00a0= str(random_msg) enc_message = message.encode(\"utf-8\")  # \u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0442\u0435\u043b\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0430. \u041f\u043e\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u0432\u0441\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b. body\u00a0=\u00a0('text={}&amp;' +         '_uuid=&amp;<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\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-412100","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/412100","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=412100"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/412100\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=412100"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=412100"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=412100"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}