├── README.md ├── get_object_activity.ipynb ├── serch_groups.ipynb ├── users_intersection.ipynb ├── get_club_id.ipynb └── get_post_by_hashtag.ipynb /README.md: -------------------------------------------------------------------------------- 1 | # Бесплатные скрипты для ВКонтакте 2 | 3 | ##Видео-инструкция по запуску 4 | https://www.youtube.com/watch?v=5ME-N2iOJe4 5 | 6 | ## Как запустить скрипт 7 | 8 | 1. Скачать https://www.continuum.io/downloads Python 3.5 для вашей операционной системы 9 | 2. Дождаться установки 10 | 3. Отредактировать ярлык у Jupiter Notebook (сменить рабочу папку) 11 | ![alt](https://api.monosnap.com/rpc/file/download?id=SeeK3e88SV73rjGozcRbGIu5EQdqtQ) 12 | 4. Запустить Jupiter Notebook 13 | 5. Скачать файл скрипта и переместить в рабочую папку 14 | 6. Запустить скрипт 15 | ![alt](https://api.monosnap.com/rpc/file/download?id=m2n56TkMUoMpqG71JGTqjdK8wmqwu5) 16 | 7. Следовать инструкции в скрипте 17 | -------------------------------------------------------------------------------- /get_object_activity.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "# Сбор ID из поста" 8 | ] 9 | }, 10 | { 11 | "cell_type": "markdown", 12 | "metadata": {}, 13 | "source": [ 14 | "Автор: Шмаков Сергей\n", 15 | "* http://freesmm.ru\n", 16 | "* https://vk.com/smmblog\n", 17 | "* https://vk.com/freesmm - сборник бесплатных скриптов для SMM\n", 18 | "* https://youtube.com/smmblog\n", 19 | "\n", 20 | "* **Вопросы по скрипту/доработки** : https://new.vk.com/topic-41212221_34161499\n", 21 | "\n", 22 | "> Хотите научиться самостоятельно делать такие скрипты? Проходите бесплатный курс, который я составил и будем всем счастье! http://freesmm.tilda.ws/page241764.html" 23 | ] 24 | }, 25 | { 26 | "cell_type": "markdown", 27 | "metadata": {}, 28 | "source": [ 29 | "**Что умеет скрипт:**\n", 30 | "* собирать данные тех, кто лайкал и репостил\n", 31 | "* собирать данные тех, кто комментировал\n", 32 | "* записывать только ID тех, кто лайкал-репостил и/или комментировал\n", 33 | "\n", 34 | "**Ограничения:**\n", 35 | "* собирает данные о первых 2000 лайках\n", 36 | "* собирает данные о первых 400 комментариях\n", 37 | "> для большинства этого будет более чем достаточно." 38 | ] 39 | }, 40 | { 41 | "cell_type": "markdown", 42 | "metadata": {}, 43 | "source": [ 44 | "Запустите последовательно блоки кода" 45 | ] 46 | }, 47 | { 48 | "cell_type": "code", 49 | "execution_count": 1, 50 | "metadata": { 51 | "collapsed": true 52 | }, 53 | "outputs": [], 54 | "source": [ 55 | "import requests\n", 56 | "import time as t \n", 57 | "import csv\n", 58 | "import datetime as dt\n", 59 | "from datetime import datetime, date, time, timedelta" 60 | ] 61 | }, 62 | { 63 | "cell_type": "markdown", 64 | "metadata": {}, 65 | "source": [ 66 | "Получить токен (перейдите по ссылке) - https://oauth.vk.com/authorize?client_id=5453402&display=page&redirect_uri=http://localhost&scope=&response_type=token&v=5.53" 67 | ] 68 | }, 69 | { 70 | "cell_type": "code", 71 | "execution_count": 34, 72 | "metadata": { 73 | "collapsed": true 74 | }, 75 | "outputs": [], 76 | "source": [ 77 | "token = 'Сюда вставить токен авторизации'" 78 | ] 79 | }, 80 | { 81 | "cell_type": "code", 82 | "execution_count": 28, 83 | "metadata": { 84 | "collapsed": false 85 | }, 86 | "outputs": [], 87 | "source": [ 88 | "def get_post_activity(owner_id,post_id):\n", 89 | " print ('Цербер начал работу в:',datetime.strftime(datetime.now(), \"%H:%M:%S\"))\n", 90 | " r = requests.post('https://api.vk.com/method/execute.Shmakov_get_object_activity?owner_id='+str(owner_id)+\n", 91 | " '&post_id='+str(post_id)+'&type=post&access_token='+token).json()['response']\n", 92 | "\n", 93 | " user_id_like = []\n", 94 | " for i in r[0]:\n", 95 | " user_id_like.append(i['id'])\n", 96 | "\n", 97 | " user_id_comments = []\n", 98 | " for i in r[1]:\n", 99 | " user_id_comments.append(i['from_id'])\n", 100 | " print ('Цербер собрал данные:',datetime.strftime(datetime.now(), \"%H:%M:%S\"))\n", 101 | " return user_id_like,user_id_comments" 102 | ] 103 | }, 104 | { 105 | "cell_type": "markdown", 106 | "metadata": {}, 107 | "source": [ 108 | "В блоке ниже, отредактируйте owner_id и post_id\n", 109 | "\n", 110 | "Пример: https://new.vk.com/smmblog?w=wall-38369814_20348\n", 111 | "* первая цифра (38369814) – это **owner_id**\n", 112 | "* вторая цифра (20348) – это **post_id**" 113 | ] 114 | }, 115 | { 116 | "cell_type": "code", 117 | "execution_count": 29, 118 | "metadata": { 119 | "collapsed": false 120 | }, 121 | "outputs": [ 122 | { 123 | "name": "stdout", 124 | "output_type": "stream", 125 | "text": [ 126 | "Цербер начал работу в: 20:44:27\n", 127 | "Цербер собрал данные: 20:44:28\n", 128 | "Wall time: 664 ms\n" 129 | ] 130 | } 131 | ], 132 | "source": [ 133 | "owner_id = -43116499 #id сообщества с минусом\n", 134 | "post_id = 576005 #id поста\n", 135 | "%time user_id_like, user_id_comments = get_post_activity(owner_id,post_id)" 136 | ] 137 | }, 138 | { 139 | "cell_type": "markdown", 140 | "metadata": {}, 141 | "source": [ 142 | "## Запись данных" 143 | ] 144 | }, 145 | { 146 | "cell_type": "markdown", 147 | "metadata": {}, 148 | "source": [ 149 | "### Вариант 1 - только лайки\\репосты" 150 | ] 151 | }, 152 | { 153 | "cell_type": "markdown", 154 | "metadata": {}, 155 | "source": [ 156 | "\n", 157 | "Запишет тех, кто лайкал и репостил" 158 | ] 159 | }, 160 | { 161 | "cell_type": "code", 162 | "execution_count": 31, 163 | "metadata": { 164 | "collapsed": false 165 | }, 166 | "outputs": [], 167 | "source": [ 168 | "a = open('post'+str(owner_id)+'-'+str(post_id)+'.txt', 'a')\n", 169 | "for i in user_id_like:\n", 170 | " a.write(str(i)+'\\n') #писать мож\n", 171 | "a.close() \n", 172 | "print ('Цербер записал данные')" 173 | ] 174 | }, 175 | { 176 | "cell_type": "markdown", 177 | "metadata": {}, 178 | "source": [ 179 | "### Вариант 2 - только комментарии" 180 | ] 181 | }, 182 | { 183 | "cell_type": "markdown", 184 | "metadata": {}, 185 | "source": [ 186 | "Запишет тех, кто комментировал" 187 | ] 188 | }, 189 | { 190 | "cell_type": "code", 191 | "execution_count": 32, 192 | "metadata": { 193 | "collapsed": true 194 | }, 195 | "outputs": [], 196 | "source": [ 197 | "a = open('post'+str(owner_id)+'-'+str(post_id)+'.txt', 'a')\n", 198 | "for i in user_id_comments:\n", 199 | " a.write(str(i)+'\\n') #писать мож\n", 200 | "a.close() \n", 201 | "print ('Цербер записал данные')" 202 | ] 203 | }, 204 | { 205 | "cell_type": "markdown", 206 | "metadata": {}, 207 | "source": [ 208 | "### Вариант 3 - лайки + репосты\n", 209 | "Запишет сразу и тех, и других." 210 | ] 211 | }, 212 | { 213 | "cell_type": "code", 214 | "execution_count": 33, 215 | "metadata": { 216 | "collapsed": true 217 | }, 218 | "outputs": [], 219 | "source": [ 220 | "a = open('post'+str(owner_id)+'-'+str(post_id)+'.txt', 'w')\n", 221 | "for i in user_id_like:\n", 222 | " a.write(str(i)+'\\n') #писать мож\n", 223 | "for i in user_id_comments:\n", 224 | " a.write(str(i)+'\\n') #писать мож\n", 225 | "a.close()\n", 226 | "print ('Цербер записал данные')" 227 | ] 228 | }, 229 | { 230 | "cell_type": "code", 231 | "execution_count": null, 232 | "metadata": { 233 | "collapsed": true 234 | }, 235 | "outputs": [], 236 | "source": [ 237 | "def():\n", 238 | " for i in range(1,30000000):\n", 239 | " a.write(str(i)+'\\n') #писать мож" 240 | ] 241 | } 242 | ], 243 | "metadata": { 244 | "kernelspec": { 245 | "display_name": "Python 3", 246 | "language": "python", 247 | "name": "python3" 248 | }, 249 | "language_info": { 250 | "codemirror_mode": { 251 | "name": "ipython", 252 | "version": 3 253 | }, 254 | "file_extension": ".py", 255 | "mimetype": "text/x-python", 256 | "name": "python", 257 | "nbconvert_exporter": "python", 258 | "pygments_lexer": "ipython3", 259 | "version": "3.5.1" 260 | } 261 | }, 262 | "nbformat": 4, 263 | "nbformat_minor": 0 264 | } 265 | -------------------------------------------------------------------------------- /serch_groups.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "Автор: Шмаков Сергей\n", 8 | "* http://freesmm.ru\n", 9 | "* https://vk.com/smmblog\n", 10 | "* https://vk.com/freesmm - сборник бесплатных скриптов для SMM\n", 11 | "* https://youtube.com/smmblog\n", 12 | "\n", 13 | "* **Вопросы по скрипту/доработки** : https://new.vk.com/topic-41212221_34157816\n", 14 | "\n", 15 | "> Хотите научиться самостоятельно делать такие скрипты? Проходите бесплатный курс, который я составил и будем всем счастье! http://freesmm.tilda.ws/page241764.html" 16 | ] 17 | }, 18 | { 19 | "cell_type": "markdown", 20 | "metadata": {}, 21 | "source": [ 22 | "# Поиск сообществ в ВКонтакте" 23 | ] 24 | }, 25 | { 26 | "cell_type": "markdown", 27 | "metadata": {}, 28 | "source": [ 29 | "Что умеет скрипт:\n", 30 | "* Собирать 1000 групп по запросу с возможностью выбора типа сообществ (группа\\встреча\\паблик)\n", 31 | "* Записывать данные (id, название, ссылку) в csv\n", 32 | "\n", 33 | "To Dо (чего нет, но хотелось бы добавить):\n", 34 | "* добавить поиск по стране/городу\n", 35 | "* сортировки " 36 | ] 37 | }, 38 | { 39 | "cell_type": "markdown", 40 | "metadata": {}, 41 | "source": [ 42 | ">запустите последоствательно блоки с кодом. следуйте инструкциям." 43 | ] 44 | }, 45 | { 46 | "cell_type": "code", 47 | "execution_count": 5, 48 | "metadata": { 49 | "collapsed": true 50 | }, 51 | "outputs": [], 52 | "source": [ 53 | "import requests\n", 54 | "import time as t \n", 55 | "import csv\n", 56 | "from datetime import datetime, date, time, timedelta\n", 57 | "import numpy as np\n", 58 | "import pandas as pd\n", 59 | "from pandas import DataFrame" 60 | ] 61 | }, 62 | { 63 | "cell_type": "markdown", 64 | "metadata": {}, 65 | "source": [ 66 | "Ссылка для получения токена: https://oauth.vk.com/authorize?client_id=5453402&display=page&redirect_uri=http://localhost&scope=&response_type=token&v=5.53" 67 | ] 68 | }, 69 | { 70 | "cell_type": "code", 71 | "execution_count": 6, 72 | "metadata": { 73 | "collapsed": true 74 | }, 75 | "outputs": [], 76 | "source": [ 77 | "token = 'вставьте сюда токен, полученный по ссылке выше'" 78 | ] 79 | }, 80 | { 81 | "cell_type": "code", 82 | "execution_count": 15, 83 | "metadata": { 84 | "collapsed": false 85 | }, 86 | "outputs": [], 87 | "source": [ 88 | "def search_groups():\n", 89 | " print('Цербер начал работу в:',datetime.strftime(datetime.now(), \"%H:%M:%S\"))\n", 90 | " q = str(input('Введите поисковый запрос:'))\n", 91 | " type_group = str(input('Введите тип сообществ. page, group, event.\\nОставьте пустым, чтобы вернул все типы сообществ:'))\n", 92 | " sort = 0\n", 93 | "\n", 94 | " r = requests.post('https://api.vk.com/method/execute.Shmakov_search_groups?q='+\n", 95 | " str(q)+'&sort='+str(sort)+'&type='+str(type_group)+'&access_token='+token).json()['response']\n", 96 | " \n", 97 | " count_groups = r[0]\n", 98 | " \n", 99 | " name = []\n", 100 | " id = []\n", 101 | " type = []\n", 102 | " screen_name= []\n", 103 | " \n", 104 | " #создаем пустой словарь, в который будем помещать информацию по каждой группе, для последующего импорта во frame\n", 105 | " data_list = {'name':name,\n", 106 | " 'screen_name':screen_name,\n", 107 | " 'id':id,\n", 108 | " 'type':type}\n", 109 | "\n", 110 | " for i in r[1]:\n", 111 | " name.append(i['name'])\n", 112 | " screen_name.append('https://vk.com/'+str(i['screen_name']))\n", 113 | " id.append(i['id'])\n", 114 | " type.append(i['type'])\n", 115 | "\n", 116 | " frame = DataFrame(data_list)\n", 117 | " print('Цербер обработал данные в:',datetime.strftime(datetime.now(), \"%H:%M:%S\"))\n", 118 | " print('Запускайте последовательно блоки ниже')\n", 119 | " return frame, count_groups" 120 | ] 121 | }, 122 | { 123 | "cell_type": "markdown", 124 | "metadata": {}, 125 | "source": [ 126 | "# Сбор списка сообществ" 127 | ] 128 | }, 129 | { 130 | "cell_type": "code", 131 | "execution_count": 17, 132 | "metadata": { 133 | "collapsed": false 134 | }, 135 | "outputs": [ 136 | { 137 | "name": "stdout", 138 | "output_type": "stream", 139 | "text": [ 140 | "Цербер начал работу в: 00:12:09\n", 141 | "Введите поисковый запрос:smm\n", 142 | "Введите тип сообществ. page, group, event.\n", 143 | "Оставьте пустым, чтобы вернул все типы сообществ:\n", 144 | "Цербер обработал данные в: 00:12:58\n", 145 | "Запускайте последовательно блоки ниже\n", 146 | "Найдено сообществ: 5956\n" 147 | ] 148 | } 149 | ], 150 | "source": [ 151 | "frame, count_groups = search_groups()\n", 152 | "print ('Найдено сообществ:',count_groups)" 153 | ] 154 | }, 155 | { 156 | "cell_type": "code", 157 | "execution_count": null, 158 | "metadata": { 159 | "collapsed": true 160 | }, 161 | "outputs": [], 162 | "source": [ 163 | "frame.to_csv('example.csv') #запишет все данные в csv файл" 164 | ] 165 | }, 166 | { 167 | "cell_type": "code", 168 | "execution_count": 18, 169 | "metadata": { 170 | "collapsed": false 171 | }, 172 | "outputs": [ 173 | { 174 | "data": { 175 | "text/html": [ 176 | "
\n", 177 | "\n", 178 | " \n", 179 | " \n", 180 | " \n", 181 | " \n", 182 | " \n", 183 | " \n", 184 | " \n", 185 | " \n", 186 | " \n", 187 | " \n", 188 | " \n", 189 | " \n", 190 | " \n", 191 | " \n", 192 | " \n", 193 | " \n", 194 | " \n", 195 | " \n", 196 | " \n", 197 | " \n", 198 | " \n", 199 | " \n", 200 | " \n", 201 | " \n", 202 | " \n", 203 | " \n", 204 | " \n", 205 | " \n", 206 | " \n", 207 | " \n", 208 | " \n", 209 | " \n", 210 | " \n", 211 | " \n", 212 | " \n", 213 | " \n", 214 | " \n", 215 | " \n", 216 | " \n", 217 | " \n", 218 | " \n", 219 | " \n", 220 | " \n", 221 | " \n", 222 | " \n", 223 | " \n", 224 | "
idnamescreen_nametype
019542789ВКонтакте для бизнесаhttps://vk.com/adsnewspage
143503600SMMщикиhttps://vk.com/smm_pubpage
24489985Вики-разметка / SMM ВКонтактеhttps://vk.com/wkpage
338369814SMM блогhttps://vk.com/smmblogpage
479389828SMM plannerhttps://vk.com/smmplannergroup
\n", 225 | "
" 226 | ], 227 | "text/plain": [ 228 | " id name screen_name type\n", 229 | "0 19542789 ВКонтакте для бизнеса https://vk.com/adsnews page\n", 230 | "1 43503600 SMMщики https://vk.com/smm_pub page\n", 231 | "2 4489985 Вики-разметка / SMM ВКонтакте https://vk.com/wk page\n", 232 | "3 38369814 SMM блог https://vk.com/smmblog page\n", 233 | "4 79389828 SMM planner https://vk.com/smmplanner group" 234 | ] 235 | }, 236 | "execution_count": 18, 237 | "metadata": {}, 238 | "output_type": "execute_result" 239 | } 240 | ], 241 | "source": [ 242 | "frame.head() #покажет первые 5 сообществ" 243 | ] 244 | }, 245 | { 246 | "cell_type": "code", 247 | "execution_count": 20, 248 | "metadata": { 249 | "collapsed": false 250 | }, 251 | "outputs": [ 252 | { 253 | "data": { 254 | "text/plain": [ 255 | "0 https://vk.com/adsnews\n", 256 | "1 https://vk.com/smm_pub\n", 257 | "2 https://vk.com/wk\n", 258 | "3 https://vk.com/smmblog\n", 259 | "4 https://vk.com/smmplanner\n", 260 | "5 https://vk.com/smmprosales\n", 261 | "6 https://vk.com/opencart_seo_smm\n", 262 | "7 https://vk.com/viproject.agency\n", 263 | "8 https://vk.com/marketing_reklama_smm\n", 264 | "9 https://vk.com/smmrf\n", 265 | "Name: screen_name, dtype: object" 266 | ] 267 | }, 268 | "execution_count": 20, 269 | "metadata": {}, 270 | "output_type": "execute_result" 271 | } 272 | ], 273 | "source": [ 274 | "frame['screen_name'][0:10] #покажет 10 сообществ. можно регулировать. + ссылки кликабельны" 275 | ] 276 | } 277 | ], 278 | "metadata": { 279 | "kernelspec": { 280 | "display_name": "Python 3", 281 | "language": "python", 282 | "name": "python3" 283 | }, 284 | "language_info": { 285 | "codemirror_mode": { 286 | "name": "ipython", 287 | "version": 3 288 | }, 289 | "file_extension": ".py", 290 | "mimetype": "text/x-python", 291 | "name": "python", 292 | "nbconvert_exporter": "python", 293 | "pygments_lexer": "ipython3", 294 | "version": "3.5.1" 295 | } 296 | }, 297 | "nbformat": 4, 298 | "nbformat_minor": 0 299 | } 300 | -------------------------------------------------------------------------------- /users_intersection.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "# Цербер: пересечение между сообществами" 8 | ] 9 | }, 10 | { 11 | "cell_type": "markdown", 12 | "metadata": {}, 13 | "source": [ 14 | "Автор: Шмаков Сергей\n", 15 | "* http://freesmm.ru\n", 16 | "* https://vk.com/smmblog\n", 17 | "* https://vk.com/freesmm - сборник бесплатных скриптов для SMM\n", 18 | "* https://youtube.com/smmblog\n", 19 | "\n", 20 | "* **Вопросы по скрипту/доработки** : https://new.vk.com/topic-41212221_34161499\n", 21 | "\n", 22 | "> Хотите научиться самостоятельно делать такие скрипты? Проходите бесплатный курс, который я составил и будем всем счастье! http://freesmm.tilda.ws/page241764.html" 23 | ] 24 | }, 25 | { 26 | "cell_type": "markdown", 27 | "metadata": {}, 28 | "source": [ 29 | "Задача:\n", 30 | "> получить список ID пользователей, которые состоят сразу в 3-х сообществах." 31 | ] 32 | }, 33 | { 34 | "cell_type": "markdown", 35 | "metadata": {}, 36 | "source": [ 37 | "Сравнивать будем:\n", 38 | "* https://vk.com/smmblog\n", 39 | "* https://vk.com/bizness_online\n", 40 | "* https://vk.com/cerebro_vk" 41 | ] 42 | }, 43 | { 44 | "cell_type": "code", 45 | "execution_count": null, 46 | "metadata": { 47 | "collapsed": true 48 | }, 49 | "outputs": [], 50 | "source": [ 51 | "Vm8WB2Uy_v0" 52 | ] 53 | }, 54 | { 55 | "cell_type": "markdown", 56 | "metadata": {}, 57 | "source": [ 58 | "Получить токен: https://oauth.vk.com/authorize?client_id=5453402&display=page&redirect_uri=http://localhost&scope=&response_type=token&v=5.53" 59 | ] 60 | }, 61 | { 62 | "cell_type": "code", 63 | "execution_count": 24, 64 | "metadata": { 65 | "collapsed": true 66 | }, 67 | "outputs": [], 68 | "source": [ 69 | "token = '' #вставить в ковычки токен" 70 | ] 71 | }, 72 | { 73 | "cell_type": "code", 74 | "execution_count": 1, 75 | "metadata": { 76 | "collapsed": true 77 | }, 78 | "outputs": [], 79 | "source": [ 80 | "import requests\n", 81 | "import time as t \n", 82 | "import csv\n", 83 | "from datetime import datetime, date, time, timedelta\n", 84 | "import random" 85 | ] 86 | }, 87 | { 88 | "cell_type": "markdown", 89 | "metadata": {}, 90 | "source": [ 91 | "Функция для сбора ID из сообщества\n", 92 | "взята из готового скрипта - https://github.com/kepatopoc/vk-scripts/blob/master/get_club_id.ipynb" 93 | ] 94 | }, 95 | { 96 | "cell_type": "code", 97 | "execution_count": 6, 98 | "metadata": { 99 | "collapsed": true 100 | }, 101 | "outputs": [], 102 | "source": [ 103 | "def get_members_list_id(owner_id): \n", 104 | " members_list = [] #изначально пустой список участников\n", 105 | "\n", 106 | " #первый запрос на 25000, чтобы получить первые 25000 и количество участников группы\n", 107 | " r = requests.post('https://api.vk.com/method/execute.Shmakov_getClub_members?group_id='+\n", 108 | " str(owner_id)+'&offset='+str(0)+'&count='+str(25000)+'&access_token='+token).json()['response']\n", 109 | " members_count = r[0] #количество участников\n", 110 | " \n", 111 | " print('В сообществе', owner_id, 'участников :',members_count)\n", 112 | " \n", 113 | " members_list.extend(r[1]) #вносим первые 25000 ID \n", 114 | " \n", 115 | " if members_count > 25000:\n", 116 | " print('В сообществе',owner_id,'больше 25000 участников. Цербер запускает цикл')\n", 117 | " for offset in range(25000, members_count, 25000):\n", 118 | " count = offset + 25000\n", 119 | "\n", 120 | " r = requests.post('https://api.vk.com/method/execute.Shmakov_getClub_members?group_id='+\n", 121 | " str(owner_id)+'&offset='+str(offset)+'&count='+str(count)+'&access_token='+token).json()['response']\n", 122 | "\n", 123 | " members_list.extend(r[1]) #вносим все последующие ID пачками по 25000 ID\n", 124 | "\n", 125 | "\n", 126 | " #t.sleep(.35) #задержки между запросом --- ВАЖНО: если будут возникать проблемы - расскоментировать \n", 127 | " print('Цербер закончил сбор ID для')\n", 128 | " else:\n", 129 | " print('В сообществе меньше 25000 участников. Цербер закончил сбор ID для')\n", 130 | "\n", 131 | " return members_list" 132 | ] 133 | }, 134 | { 135 | "cell_type": "markdown", 136 | "metadata": {}, 137 | "source": [ 138 | "Запускаем функцию для каждого сообщества.\n", 139 | "\n", 140 | "**%time** - для вывода времени, за которое выполняется функция" 141 | ] 142 | }, 143 | { 144 | "cell_type": "code", 145 | "execution_count": 11, 146 | "metadata": { 147 | "collapsed": false 148 | }, 149 | "outputs": [ 150 | { 151 | "name": "stdout", 152 | "output_type": "stream", 153 | "text": [ 154 | "В сообществе 38369814 участников : 28945\n", 155 | "В сообществе 38369814 больше 25000 участников. Цербер запускает цикл\n", 156 | "Цербер закончил сбор ID для\n", 157 | "Wall time: 1.32 s\n", 158 | "В сообществе 73662138 участников : 136479\n", 159 | "В сообществе 73662138 больше 25000 участников. Цербер запускает цикл\n", 160 | "Цербер закончил сбор ID для\n", 161 | "Wall time: 4.92 s\n", 162 | "В сообществе 40018862 участников : 104536\n", 163 | "В сообществе 40018862 больше 25000 участников. Цербер запускает цикл\n", 164 | "Цербер закончил сбор ID для\n", 165 | "Wall time: 3.63 s\n" 166 | ] 167 | } 168 | ], 169 | "source": [ 170 | "%time smmblog = get_members_list_id(38369814)\n", 171 | "%time cerebro = get_members_list_id(73662138)\n", 172 | "%time imaya = get_members_list_id(40018862)" 173 | ] 174 | }, 175 | { 176 | "cell_type": "markdown", 177 | "metadata": {}, 178 | "source": [ 179 | "выводим на экран количество собранных ID" 180 | ] 181 | }, 182 | { 183 | "cell_type": "code", 184 | "execution_count": 13, 185 | "metadata": { 186 | "collapsed": false 187 | }, 188 | "outputs": [ 189 | { 190 | "data": { 191 | "text/plain": [ 192 | "269960" 193 | ] 194 | }, 195 | "execution_count": 13, 196 | "metadata": {}, 197 | "output_type": "execute_result" 198 | } 199 | ], 200 | "source": [ 201 | "count = len(smmblog + cerebro + imaya)\n", 202 | "count #269 000 за 10 сек. о как." 203 | ] 204 | }, 205 | { 206 | "cell_type": "markdown", 207 | "metadata": {}, 208 | "source": [ 209 | "Сколько участников состоит только в одном из 3х сообществ." 210 | ] 211 | }, 212 | { 213 | "cell_type": "code", 214 | "execution_count": 18, 215 | "metadata": { 216 | "collapsed": false 217 | }, 218 | "outputs": [ 219 | { 220 | "data": { 221 | "text/plain": [ 222 | "225804" 223 | ] 224 | }, 225 | "execution_count": 18, 226 | "metadata": {}, 227 | "output_type": "execute_result" 228 | } 229 | ], 230 | "source": [ 231 | "uniq_3 = set(smmblog) | set(cerebro) | set(imaya)\n", 232 | "len(groups_3)" 233 | ] 234 | }, 235 | { 236 | "cell_type": "markdown", 237 | "metadata": {}, 238 | "source": [ 239 | "![alt](https://api.monosnap.com/rpc/file/download?id=Sr0Wjle2cKKP4FYI5qy7F9hO87R1K5)
\n", 240 | "Получил уникальные, то есть без каких-либо пересечений. \n", 241 | "Получается что всего 44000 сидит в трёх сообществах.\n" 242 | ] 243 | }, 244 | { 245 | "cell_type": "markdown", 246 | "metadata": {}, 247 | "source": [ 248 | "![alt](https://api.monosnap.com/rpc/file/download?id=kN2MR3ZGLZxLvq35hwvMGn9KZwN6uS)
\n" 249 | ] 250 | }, 251 | { 252 | "cell_type": "code", 253 | "execution_count": 21, 254 | "metadata": { 255 | "collapsed": false 256 | }, 257 | "outputs": [ 258 | { 259 | "data": { 260 | "text/plain": [ 261 | "6499" 262 | ] 263 | }, 264 | "execution_count": 21, 265 | "metadata": {}, 266 | "output_type": "execute_result" 267 | } 268 | ], 269 | "source": [ 270 | "groups_3 = set(smmblog) & set(cerebro) & set(imaya)\n", 271 | "len(groups_3)" 272 | ] 273 | }, 274 | { 275 | "cell_type": "markdown", 276 | "metadata": {}, 277 | "source": [ 278 | "![alt](https://api.monosnap.com/rpc/file/download?id=GXusDSTx27xXJjjajYOgLwiQ44M8H3)
" 279 | ] 280 | }, 281 | { 282 | "cell_type": "markdown", 283 | "metadata": {}, 284 | "source": [ 285 | "6499 состоят сразу в трёх сообществах. Это значение без проблем можем записать в csv" 286 | ] 287 | }, 288 | { 289 | "cell_type": "markdown", 290 | "metadata": {}, 291 | "source": [ 292 | "## Запись данных в csv" 293 | ] 294 | }, 295 | { 296 | "cell_type": "code", 297 | "execution_count": 23, 298 | "metadata": { 299 | "collapsed": true 300 | }, 301 | "outputs": [], 302 | "source": [ 303 | "with open('3 группы.csv', 'w', newline='') as csvfile:\n", 304 | " datawriter = csv.writer(csvfile, delimiter=',',\n", 305 | " quotechar='|', quoting=csv.QUOTE_MINIMAL)\n", 306 | " datawriter.writerow(groups_3)" 307 | ] 308 | }, 309 | { 310 | "cell_type": "markdown", 311 | "metadata": {}, 312 | "source": [ 313 | "Всё. файл можно загружать в ретаргетинг.\n", 314 | "\n", 315 | "Таким образом из нескольких частей был составлен простой скрипт по поиску тех, кто находится в нескольких сообщества. Заняло это неболее 10 минут при наличии готовых компоментов и понимании что делать." 316 | ] 317 | } 318 | ], 319 | "metadata": { 320 | "kernelspec": { 321 | "display_name": "Python 3", 322 | "language": "python", 323 | "name": "python3" 324 | }, 325 | "language_info": { 326 | "codemirror_mode": { 327 | "name": "ipython", 328 | "version": 3 329 | }, 330 | "file_extension": ".py", 331 | "mimetype": "text/x-python", 332 | "name": "python", 333 | "nbconvert_exporter": "python", 334 | "pygments_lexer": "ipython3", 335 | "version": "3.5.1" 336 | } 337 | }, 338 | "nbformat": 4, 339 | "nbformat_minor": 0 340 | } 341 | -------------------------------------------------------------------------------- /get_club_id.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "# Сбор ID участников сообщества (группа, паблик, встреча) ВКонтакте" 8 | ] 9 | }, 10 | { 11 | "cell_type": "markdown", 12 | "metadata": {}, 13 | "source": [ 14 | "Автор: Шмаков Сергей\n", 15 | "* http://freesmm.ru\n", 16 | "* https://vk.com/smmblog\n", 17 | "* https://vk.com/freesmm - сборник бесплатных скриптов для SMM\n", 18 | "* https://youtube.com/smmblog\n", 19 | "\n", 20 | "* **Вопросы по скрипту/доработки** : https://new.vk.com/topic-41212221_34128076\n", 21 | "\n", 22 | "> Хотите научиться самостоятельно делать такие скрипты? Проходите бесплатный курс, который я составил и будем всем счастье! http://freesmm.tilda.ws/page241764.html" 23 | ] 24 | }, 25 | { 26 | "cell_type": "markdown", 27 | "metadata": {}, 28 | "source": [ 29 | "Для корректной работы скрипта **необходимо получить ТОКЕН** и вставить его в одном из блоков\n", 30 | "\n", 31 | "**Как получить токен, для запуска приложений**:\n", 32 | "* Перейдите по ссылке: https://oauth.vk.com/authorize?client_id=5453402&display=page&redirect_uri=http://localhost&scope=&response_type=token&v=5.53\n", 33 | "* Скопируйте токен из адресной строки и вставьте в ячейку\n", 34 | "\n", 35 | "> Токен никуда не передаётся. О нём знаете только Вы и приложение ВКонтакте, которое не отображает токенов. Только количество установок приложения\n", 36 | "\n", 37 | "![alt](https://api.monosnap.com/rpc/file/download?id=H72wV79ObVw7rLBfJO8T4jOJ25szXW)" 38 | ] 39 | }, 40 | { 41 | "cell_type": "markdown", 42 | "metadata": {}, 43 | "source": [ 44 | "Последовательно запустите блоки" 45 | ] 46 | }, 47 | { 48 | "cell_type": "markdown", 49 | "metadata": {}, 50 | "source": [ 51 | "## Когда сообщество одно" 52 | ] 53 | }, 54 | { 55 | "cell_type": "code", 56 | "execution_count": 1, 57 | "metadata": { 58 | "collapsed": true 59 | }, 60 | "outputs": [], 61 | "source": [ 62 | "import requests\n", 63 | "import time as t \n", 64 | "import csv\n", 65 | "from datetime import datetime, date, time, timedelta\n", 66 | "\n", 67 | "token = 'bce88fab620ffb6de808026706b0f3b83912ea85d553e1249082ee1267f2d9e5c3cc718ecb9a5e3b61fec2b9cff1e'" 68 | ] 69 | }, 70 | { 71 | "cell_type": "code", 72 | "execution_count": 16, 73 | "metadata": { 74 | "collapsed": false 75 | }, 76 | "outputs": [], 77 | "source": [ 78 | "def write_txt(members_list, owner_id): \n", 79 | " a = open('members_club'+str(owner_id)+'.txt', 'w')\n", 80 | " for i in members_list:\n", 81 | " a.write(str(i)+'\\n') #писать мож\n", 82 | " a.close() " 83 | ] 84 | }, 85 | { 86 | "cell_type": "code", 87 | "execution_count": 18, 88 | "metadata": { 89 | "collapsed": false 90 | }, 91 | "outputs": [], 92 | "source": [ 93 | "def get_members_list_id(owner_id):\n", 94 | " print('Цербер начал работать в:',datetime.strftime(datetime.now(), \"%H:%M:%S\"))\n", 95 | " \n", 96 | " members_list = [] #изначально пустой список участников\n", 97 | "\n", 98 | " #первый запрос на 25000, чтобы получить первые 25000 и количество участников группы\n", 99 | " r = requests.post('https://api.vk.com/method/execute.Shmakov_getClub_members?group_id='+\n", 100 | " str(owner_id)+'&offset='+str(0)+'&count='+str(25000)+'&access_token='+token).json()['response']\n", 101 | " members_count = r[0] #количество участников\n", 102 | " \n", 103 | " print('Количество участников в сообществе:',members_count)\n", 104 | " \n", 105 | " members_list.extend(r[1]) #вносим первые 25000 ID \n", 106 | " \n", 107 | " if members_count > 25000:\n", 108 | " print('В сообществе больше 25000 участников. Цербер запускает цикл')\n", 109 | " for offset in range(25000, members_count, 25000):\n", 110 | " count = offset + 25000\n", 111 | "\n", 112 | " r = requests.post('https://api.vk.com/method/execute.Shmakov_getClub_members?group_id='+\n", 113 | " str(owner_id)+'&offset='+str(offset)+'&count='+str(count)+'&access_token='+token).json()['response']\n", 114 | "\n", 115 | " members_list.extend(r[1]) #вносим все последующие ID пачками по 25000 ID\n", 116 | "\n", 117 | "\n", 118 | " #t.sleep(.35) #задержки между запросом --- ВАЖНО: если будут возникать проблемы - расскоментировать \n", 119 | " print('Цербер закончил сбор ID')\n", 120 | " else:\n", 121 | " print('В сообществе меньше 25000 участников. Цербер закончил сбор ID')\n", 122 | " \n", 123 | " print(len(members_list))\n", 124 | " write_txt(members_list, owner_id) #записываем по 25000 ID\n", 125 | " print('Данные успешно записаны')\n", 126 | " print('Цербер закончил работать в:',datetime.strftime(datetime.now(), \"%H:%M:%S\"))\n" 127 | ] 128 | }, 129 | { 130 | "cell_type": "markdown", 131 | "metadata": {}, 132 | "source": [ 133 | "Подставьте в скобки ID сообщества, из которого нужно собрать ID участников" 134 | ] 135 | }, 136 | { 137 | "cell_type": "code", 138 | "execution_count": 20, 139 | "metadata": { 140 | "collapsed": false 141 | }, 142 | "outputs": [ 143 | { 144 | "name": "stdout", 145 | "output_type": "stream", 146 | "text": [ 147 | "Цербер начал работать в: 22:50:09\n", 148 | "Количество участников в сообществе: 28261\n", 149 | "В сообществе больше 25000 участников. Цербер запускает цикл\n", 150 | "Цербер закончил сбор ID\n", 151 | "28261\n", 152 | "Данные успешно записаны\n", 153 | "Цербер закончил работать в: 22:50:10\n", 154 | "Wall time: 925 ms\n" 155 | ] 156 | } 157 | ], 158 | "source": [ 159 | "%time get_members_list_id(38369814) # vk.com/smmblog" 160 | ] 161 | }, 162 | { 163 | "cell_type": "code", 164 | "execution_count": 19, 165 | "metadata": { 166 | "collapsed": false 167 | }, 168 | "outputs": [ 169 | { 170 | "name": "stdout", 171 | "output_type": "stream", 172 | "text": [ 173 | "Цербер начал работать в: 22:49:49\n", 174 | "Количество участников в сообществе: 528548\n", 175 | "В сообществе больше 25000 участников. Цербер запускает цикл\n", 176 | "Цербер закончил сбор ID\n", 177 | "528548\n", 178 | "Данные успешно записаны\n", 179 | "Цербер закончил работать в: 22:50:02\n", 180 | "Wall time: 13 s\n" 181 | ] 182 | } 183 | ], 184 | "source": [ 185 | "%time get_members_list_id(33393308) # vk.com/vcru" 186 | ] 187 | }, 188 | { 189 | "cell_type": "markdown", 190 | "metadata": {}, 191 | "source": [ 192 | "## Если сообществ несколько и нужно писать в один файл" 193 | ] 194 | }, 195 | { 196 | "cell_type": "code", 197 | "execution_count": 7, 198 | "metadata": { 199 | "collapsed": true 200 | }, 201 | "outputs": [], 202 | "source": [ 203 | "import requests\n", 204 | "import time as t \n", 205 | "import csv\n", 206 | "from datetime import datetime, date, time, timedelta\n", 207 | "import random" 208 | ] 209 | }, 210 | { 211 | "cell_type": "code", 212 | "execution_count": 16, 213 | "metadata": { 214 | "collapsed": true 215 | }, 216 | "outputs": [], 217 | "source": [ 218 | "def write_txt(members_list): \n", 219 | " a = open('members_club_list'+str(random.randint(0, 999999))+'.txt', 'a') #добавлено случайное число, чтобы выгрузки не совпадали\n", 220 | " for i in members_list:\n", 221 | " a.write(str(i)+'\\n') #писать мож\n", 222 | " a.close() " 223 | ] 224 | }, 225 | { 226 | "cell_type": "code", 227 | "execution_count": 17, 228 | "metadata": { 229 | "collapsed": true 230 | }, 231 | "outputs": [], 232 | "source": [ 233 | "def get_members_list_id(owner_id): \n", 234 | " members_list = [] #изначально пустой список участников\n", 235 | "\n", 236 | " #первый запрос на 25000, чтобы получить первые 25000 и количество участников группы\n", 237 | " r = requests.post('https://api.vk.com/method/execute.Shmakov_getClub_members?group_id='+\n", 238 | " str(owner_id)+'&offset='+str(0)+'&count='+str(25000)+'&access_token='+token).json()['response']\n", 239 | " members_count = r[0] #количество участников\n", 240 | " \n", 241 | " print('В сообществе', owner_id, 'участников :',members_count)\n", 242 | " \n", 243 | " members_list.extend(r[1]) #вносим первые 25000 ID \n", 244 | " \n", 245 | " if members_count > 25000:\n", 246 | " print('В сообществе',owner_id,'больше 25000 участников. Цербер запускает цикл')\n", 247 | " for offset in range(25000, members_count, 25000):\n", 248 | " count = offset + 25000\n", 249 | "\n", 250 | " r = requests.post('https://api.vk.com/method/execute.Shmakov_getClub_members?group_id='+\n", 251 | " str(owner_id)+'&offset='+str(offset)+'&count='+str(count)+'&access_token='+token).json()['response']\n", 252 | "\n", 253 | " members_list.extend(r[1]) #вносим все последующие ID пачками по 25000 ID\n", 254 | "\n", 255 | "\n", 256 | " #t.sleep(.35) #задержки между запросом --- ВАЖНО: если будут возникать проблемы - расскоментировать \n", 257 | " print('Цербер закончил сбор ID для', owner_id)\n", 258 | " else:\n", 259 | " print('В сообществе меньше 25000 участников. Цербер закончил сбор ID для', owner_id)\n", 260 | "\n", 261 | " return members_list" 262 | ] 263 | }, 264 | { 265 | "cell_type": "code", 266 | "execution_count": 18, 267 | "metadata": { 268 | "collapsed": false 269 | }, 270 | "outputs": [], 271 | "source": [ 272 | "def get_list_club_id(list_club):\n", 273 | " print('Цербер начал работать в:',datetime.strftime(datetime.now(), \"%H:%M:%S\"))\n", 274 | " b = []\n", 275 | " for i in list_club:\n", 276 | " b.extend(get_members_list_id(i))\n", 277 | "\n", 278 | " \n", 279 | " write_txt(b) #записываем сразу все ID из сообществ, указанных в списке\n", 280 | " print('Данные успешно записаны')\n", 281 | " print('Цербер закончил работать в:',datetime.strftime(datetime.now(), \"%H:%M:%S\"))" 282 | ] 283 | }, 284 | { 285 | "cell_type": "code", 286 | "execution_count": 19, 287 | "metadata": { 288 | "collapsed": false 289 | }, 290 | "outputs": [ 291 | { 292 | "name": "stdout", 293 | "output_type": "stream", 294 | "text": [ 295 | "Цербер начал работать в: 23:44:06\n", 296 | "В сообществе 38369814 участников : 28260\n", 297 | "В сообществе 38369814 больше 25000 участников. Цербер запускает цикл\n", 298 | "Цербер закончил сбор ID для 38369814\n", 299 | "В сообществе 40018862 участников : 101905\n", 300 | "В сообществе 40018862 больше 25000 участников. Цербер запускает цикл\n", 301 | "Цербер закончил сбор ID для 40018862\n", 302 | "Данные успешно записаны\n", 303 | "Цербер закончил работать в: 23:44:10\n", 304 | "Wall time: 3.67 s\n" 305 | ] 306 | } 307 | ], 308 | "source": [ 309 | "list_club = [38369814,40018862] # список id сообществ, из которых нужно собрать участников\n", 310 | "%time get_list_club_id(list_club)" 311 | ] 312 | }, 313 | { 314 | "cell_type": "markdown", 315 | "metadata": {}, 316 | "source": [ 317 | "Автор: Шмаков Сергей\n", 318 | "* http://freesmm.ru\n", 319 | "* https://vk.com/smmblog\n", 320 | "* https://vk.com/freesmm - сборник бесплатных скриптов для SMM\n", 321 | "* https://youtube.com/smmblog\n", 322 | "\n", 323 | "* **Вопросы по скрипту/доработки** : https://new.vk.com/topic-41212221_34128076\n", 324 | "\n", 325 | "> Хотите научиться самостоятельно делать такие скрипты? Проходите бесплатный курс, который я составил и будем всем счастье! http://freesmm.tilda.ws/page241764.html" 326 | ] 327 | } 328 | ], 329 | "metadata": { 330 | "kernelspec": { 331 | "display_name": "Python 3", 332 | "language": "python", 333 | "name": "python3" 334 | }, 335 | "language_info": { 336 | "codemirror_mode": { 337 | "name": "ipython", 338 | "version": 3 339 | }, 340 | "file_extension": ".py", 341 | "mimetype": "text/x-python", 342 | "name": "python", 343 | "nbconvert_exporter": "python", 344 | "pygments_lexer": "ipython3", 345 | "version": "3.5.1" 346 | } 347 | }, 348 | "nbformat": 4, 349 | "nbformat_minor": 0 350 | } 351 | -------------------------------------------------------------------------------- /get_post_by_hashtag.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "# Сбор постов Вконтакте по #хештегу" 8 | ] 9 | }, 10 | { 11 | "cell_type": "markdown", 12 | "metadata": {}, 13 | "source": [ 14 | "Автор: Шмаков Сергей\n", 15 | "* http://freesmm.ru\n", 16 | "* https://vk.com/smmblog\n", 17 | "* https://vk.com/freesmm - сборник бесплатных скриптов для SMM\n", 18 | "* https://youtube.com/smmblog\n", 19 | "\n", 20 | "* **Вопросы по скрипту/доработки** : https://new.vk.com/topic-41212221_34161499\n", 21 | "\n", 22 | "> Хотите научиться самостоятельно делать такие скрипты? Проходите бесплатный курс по программированию адаптированные для SMM-щиков http://freesmm.tilda.ws/page241764.html" 23 | ] 24 | }, 25 | { 26 | "cell_type": "markdown", 27 | "metadata": {}, 28 | "source": [ 29 | "## Что умеет скрипт\n", 30 | "* Собирать основные данные в таблицу (без текста\\фото и прочего)\n", 31 | "* Экспресс-анализ данных\n", 32 | "\n", 33 | "Нужны доработки? обращайтесь - vk.me/smmblog" 34 | ] 35 | }, 36 | { 37 | "cell_type": "markdown", 38 | "metadata": {}, 39 | "source": [ 40 | "## Шаг 0 - подключить пакеты" 41 | ] 42 | }, 43 | { 44 | "cell_type": "code", 45 | "execution_count": 14, 46 | "metadata": { 47 | "collapsed": true 48 | }, 49 | "outputs": [], 50 | "source": [ 51 | "import time as t \n", 52 | "import csv\n", 53 | "import datetime as dt\n", 54 | "from datetime import datetime, date, time, timedelta\n", 55 | "import requests\n", 56 | "import itertools\n", 57 | "%matplotlib inline" 58 | ] 59 | }, 60 | { 61 | "cell_type": "markdown", 62 | "metadata": {}, 63 | "source": [ 64 | "## Шаг 1 - получить токен ВКонтакте\n", 65 | "\n", 66 | "Для получения токена перейдите по ссылке и скопируйте нужную часть в блок ниже\n", 67 | "https://oauth.vk.com/authorize?client_id=5453402&display=page&redirect_uri=http://localhost&scope=&response_type=token&v=5.53\n", 68 | "![alt](https://api.monosnap.com/rpc/file/download?id=H72wV79ObVw7rLBfJO8T4jOJ25szXW)" 69 | ] 70 | }, 71 | { 72 | "cell_type": "code", 73 | "execution_count": 150, 74 | "metadata": { 75 | "collapsed": false 76 | }, 77 | "outputs": [], 78 | "source": [ 79 | "token = 'вставить токен'" 80 | ] 81 | }, 82 | { 83 | "cell_type": "markdown", 84 | "metadata": {}, 85 | "source": [ 86 | "## Шаг 2 - задать запрос" 87 | ] 88 | }, 89 | { 90 | "cell_type": "code", 91 | "execution_count": 151, 92 | "metadata": { 93 | "collapsed": true 94 | }, 95 | "outputs": [], 96 | "source": [ 97 | "q = 'vinci' #без знака # только одно слово." 98 | ] 99 | }, 100 | { 101 | "cell_type": "markdown", 102 | "metadata": {}, 103 | "source": [ 104 | "## Шаг 3 - создать csv с колонками\n", 105 | "\n", 106 | "Создаём файл и записываем колонки таблицы (создаёт новую или перезаписывает **полностью** старую)" 107 | ] 108 | }, 109 | { 110 | "cell_type": "code", 111 | "execution_count": 152, 112 | "metadata": { 113 | "collapsed": false 114 | }, 115 | "outputs": [], 116 | "source": [ 117 | "with open(q+'.csv', 'w', newline='', encoding='UTF-8') as csvfile:\n", 118 | " datawriter = csv.writer(csvfile, delimiter=';',\n", 119 | " quotechar='|', quoting=csv.QUOTE_MINIMAL)\n", 120 | "\n", 121 | "\n", 122 | " datawriter.writerow(['date']+['owner_id']+['post_id']+['likes']+\n", 123 | " ['reposts']+['comments']+\n", 124 | "\n", 125 | " ['coordinates']+ \n", 126 | " #не трогать, не работает.\n", 127 | " #['place_country']+['city']+['address']+['coordinates']+ \n", 128 | " #['place_id']+['latitude']+['longitude']+\n", 129 | " #['created']+['updated']+['checkins']+ \n", 130 | "\n", 131 | " ['post_type']+\n", 132 | " ['platform']+['platform_type'])" 133 | ] 134 | }, 135 | { 136 | "cell_type": "code", 137 | "execution_count": null, 138 | "metadata": { 139 | "collapsed": false 140 | }, 141 | "outputs": [], 142 | "source": [ 143 | "i = 0\n", 144 | "while True:\n", 145 | "\n", 146 | " if i == 0:\n", 147 | " b = datetime.now() #текущее время\n", 148 | "\n", 149 | " end_time = 1475508828 #int(t.mktime(b.timetuple())) #подставить unix-время если требуется сбор с определённого момента\n", 150 | " \n", 151 | " print('Цербер начал собирать посты с:', end_time, dt.datetime.fromtimestamp( #функция преобразования\n", 152 | " int(end_time)\n", 153 | " ).strftime('%Y-%m-%d %H:%M:%S'))\n", 154 | "\n", 155 | " i = 1\n", 156 | "\n", 157 | " else:\n", 158 | " end_time = r[0] #возвращает ВК крайнее время от которого нужно опускаться дальше\n", 159 | "\n", 160 | "\n", 161 | "\n", 162 | " r = requests.post('https://api.vk.com/method/execute.Shmakov_search_post?q='+str(q)\n", 163 | " +'&end_time='+str(end_time)\n", 164 | " +'&access_token='+token).json()['response']\n", 165 | " #print('крайнее время, должно совпадать',r[0])\n", 166 | " \n", 167 | "\n", 168 | " #print(len(r[1])) - сколько постов собрано за раз\n", 169 | "\n", 170 | "\n", 171 | "\n", 172 | " #print(time_start)\n", 173 | "\n", 174 | " for i in r[1]:\n", 175 | "\n", 176 | "\n", 177 | " date = i['date'] #дата поста\n", 178 | "\n", 179 | " owner_id = i['owner_id'] #создатель поста\n", 180 | " post_id = i['id'] #id поста\n", 181 | "\n", 182 | " likes = i['likes']['count'] #количество лайков\n", 183 | " reposts = i['reposts']['count'] #количество репостов\n", 184 | " comments = i['comments']['count'] #количество комментариев\n", 185 | " geo = i.setdefault('geo', None) \n", 186 | "\n", 187 | "\n", 188 | " if geo == None:\n", 189 | " coordinates = None\n", 190 | " else:\n", 191 | " '''\n", 192 | " place_id = i['geo']['place'].setdefault('id',None)\n", 193 | " latitude = geo['place'].setdefault('latitude',None) #широта места\n", 194 | " longitude = geo['place'].setdefault('longitude',None) #долгота места\n", 195 | " created= geo['place'].setdefault('created',None) # дата создания места\n", 196 | " updated= geo['place'].setdefault('updated',None) # дата обновления информации о месте\n", 197 | " checkins= geo['place'].setdefault('checkins',None) #количество чекинов в этом месте\n", 198 | " place_name = i['geo'].setdefault('title',None)\n", 199 | " country = i['geo'].setdefault('country',None)\n", 200 | " city = i['geo'].setdefault('city',None)\n", 201 | " address = i['geo'].setdefault('address',None)\n", 202 | "\n", 203 | " '''\n", 204 | " coordinates= geo.setdefault('coordinates',None) #координаты пользователя \n", 205 | "\n", 206 | "\n", 207 | " post_type = i['post_type']\n", 208 | "\n", 209 | " platform = i['post_source'].setdefault('platform','direct')\n", 210 | " platform_type = i['post_source'].setdefault('type',None)\n", 211 | " platform_url = i['post_source'].setdefault('url',None)\n", 212 | "\n", 213 | "\n", 214 | "\n", 215 | " with open(str(q)+'.csv', 'a', newline='', encoding='UTF-8') as csvfile:\n", 216 | " datawriter = csv.writer(csvfile, delimiter=';',\n", 217 | " quotechar='|', quoting=csv.QUOTE_MINIMAL)\n", 218 | "\n", 219 | "\n", 220 | " datawriter.writerow([date]+[owner_id]+[post_id]+[likes]+\n", 221 | " [reposts]+[comments]+\n", 222 | "\n", 223 | " #[geo]+\n", 224 | " [coordinates]+ \n", 225 | "\n", 226 | " #не трогать - не работает\n", 227 | " #[country]+[city]+[address]+ \n", 228 | " #[place_id]+[latitude]+[longitude]+\n", 229 | " #[created]+[updated]+[checkins]+\n", 230 | "\n", 231 | "\n", 232 | " [post_type]+\n", 233 | " [platform]+[platform_type])\n", 234 | " print('Цербер собрал посты до:',r[0],dt.datetime.fromtimestamp( #функция преобразования\n", 235 | " int(r[0])\n", 236 | " ).strftime('%Y-%m-%d %H:%M:%S'))\n", 237 | " t.sleep(30) " 238 | ] 239 | }, 240 | { 241 | "cell_type": "code", 242 | "execution_count": 80, 243 | "metadata": { 244 | "collapsed": true 245 | }, 246 | "outputs": [], 247 | "source": [ 248 | "import numpy as np\n", 249 | "import pandas as pd\n", 250 | "import matplotlib\n", 251 | "import numpy as np\n", 252 | "import matplotlib.pyplot as plt\n", 253 | "import matplotlib.patches as mpatches" 254 | ] 255 | }, 256 | { 257 | "cell_type": "code", 258 | "execution_count": 164, 259 | "metadata": { 260 | "collapsed": true 261 | }, 262 | "outputs": [], 263 | "source": [ 264 | "df = pd.read_csv(str(q)+'.csv', delimiter=';', encoding='UTF-8',error_bad_lines=False, parse_dates=True)" 265 | ] 266 | }, 267 | { 268 | "cell_type": "code", 269 | "execution_count": 165, 270 | "metadata": { 271 | "collapsed": false 272 | }, 273 | "outputs": [ 274 | { 275 | "data": { 276 | "text/html": [ 277 | "
\n", 278 | "\n", 279 | " \n", 280 | " \n", 281 | " \n", 282 | " \n", 283 | " \n", 284 | " \n", 285 | " \n", 286 | " \n", 287 | " \n", 288 | " \n", 289 | " \n", 290 | " \n", 291 | " \n", 292 | " \n", 293 | " \n", 294 | " \n", 295 | " \n", 296 | " \n", 297 | " \n", 298 | " \n", 299 | " \n", 300 | " \n", 301 | " \n", 302 | " \n", 303 | " \n", 304 | " \n", 305 | " \n", 306 | " \n", 307 | " \n", 308 | " \n", 309 | " \n", 310 | " \n", 311 | " \n", 312 | " \n", 313 | " \n", 314 | " \n", 315 | " \n", 316 | " \n", 317 | " \n", 318 | " \n", 319 | " \n", 320 | " \n", 321 | " \n", 322 | " \n", 323 | " \n", 324 | " \n", 325 | " \n", 326 | " \n", 327 | " \n", 328 | " \n", 329 | " \n", 330 | " \n", 331 | " \n", 332 | " \n", 333 | " \n", 334 | " \n", 335 | " \n", 336 | " \n", 337 | " \n", 338 | " \n", 339 | " \n", 340 | " \n", 341 | " \n", 342 | " \n", 343 | " \n", 344 | " \n", 345 | " \n", 346 | " \n", 347 | " \n", 348 | " \n", 349 | " \n", 350 | " \n", 351 | " \n", 352 | " \n", 353 | " \n", 354 | " \n", 355 | " \n", 356 | " \n", 357 | " \n", 358 | " \n", 359 | " \n", 360 | " \n", 361 | "
dateowner_idpost_idlikesrepostscommentscoordinatespost_typeplatformplatform_type
01477743102-131803463738000NaNreplydirectmvk
114777428543438700441004000NaNpostdirectvk
214777428349435961813196000NaNpostinstagramapi
3147774257215053852619000NaNpostdirectvk
4147774231215053852615000NaNpostdirectvk
\n", 362 | "
" 363 | ], 364 | "text/plain": [ 365 | " date owner_id post_id likes reposts comments coordinates \\\n", 366 | "0 1477743102 -131803463 738 0 0 0 NaN \n", 367 | "1 1477742854 343870044 1004 0 0 0 NaN \n", 368 | "2 1477742834 94359618 13196 0 0 0 NaN \n", 369 | "3 1477742572 150538526 19 0 0 0 NaN \n", 370 | "4 1477742312 150538526 15 0 0 0 NaN \n", 371 | "\n", 372 | " post_type platform platform_type \n", 373 | "0 reply direct mvk \n", 374 | "1 post direct vk \n", 375 | "2 post instagram api \n", 376 | "3 post direct vk \n", 377 | "4 post direct vk " 378 | ] 379 | }, 380 | "execution_count": 165, 381 | "metadata": {}, 382 | "output_type": "execute_result" 383 | } 384 | ], 385 | "source": [ 386 | "df.head()" 387 | ] 388 | }, 389 | { 390 | "cell_type": "markdown", 391 | "metadata": {}, 392 | "source": [ 393 | "удалим дубликаты. возможны будут если перезаписывать файл" 394 | ] 395 | }, 396 | { 397 | "cell_type": "code", 398 | "execution_count": null, 399 | "metadata": { 400 | "collapsed": false 401 | }, 402 | "outputs": [], 403 | "source": [ 404 | "df.drop_duplicates() #удалит дубликаты если перезаписывали файл" 405 | ] 406 | }, 407 | { 408 | "cell_type": "markdown", 409 | "metadata": {}, 410 | "source": [ 411 | "переведём unix-time в нормальное время" 412 | ] 413 | }, 414 | { 415 | "cell_type": "code", 416 | "execution_count": 167, 417 | "metadata": { 418 | "collapsed": true 419 | }, 420 | "outputs": [], 421 | "source": [ 422 | "df['date'] = pd.to_datetime(df['date'],unit='s') " 423 | ] 424 | }, 425 | { 426 | "cell_type": "markdown", 427 | "metadata": {}, 428 | "source": [ 429 | "сгруппируем данные по дням" 430 | ] 431 | }, 432 | { 433 | "cell_type": "code", 434 | "execution_count": 168, 435 | "metadata": { 436 | "collapsed": false 437 | }, 438 | "outputs": [ 439 | { 440 | "data": { 441 | "text/html": [ 442 | "
\n", 443 | "\n", 444 | " \n", 445 | " \n", 446 | " \n", 447 | " \n", 448 | " \n", 449 | " \n", 450 | " \n", 451 | " \n", 452 | " \n", 453 | " \n", 454 | " \n", 455 | " \n", 456 | " \n", 457 | " \n", 458 | " \n", 459 | " \n", 460 | " \n", 461 | " \n", 462 | " \n", 463 | " \n", 464 | " \n", 465 | " \n", 466 | " \n", 467 | " \n", 468 | " \n", 469 | " \n", 470 | " \n", 471 | " \n", 472 | " \n", 473 | " \n", 474 | " \n", 475 | " \n", 476 | " \n", 477 | " \n", 478 | " \n", 479 | " \n", 480 | " \n", 481 | " \n", 482 | " \n", 483 | " \n", 484 | " \n", 485 | " \n", 486 | " \n", 487 | " \n", 488 | " \n", 489 | " \n", 490 | " \n", 491 | " \n", 492 | " \n", 493 | " \n", 494 | " \n", 495 | " \n", 496 | " \n", 497 | " \n", 498 | " \n", 499 | " \n", 500 | " \n", 501 | " \n", 502 | " \n", 503 | " \n", 504 | " \n", 505 | " \n", 506 | " \n", 507 | " \n", 508 | " \n", 509 | " \n", 510 | " \n", 511 | " \n", 512 | " \n", 513 | " \n", 514 | " \n", 515 | " \n", 516 | " \n", 517 | " \n", 518 | " \n", 519 | " \n", 520 | " \n", 521 | " \n", 522 | " \n", 523 | " \n", 524 | " \n", 525 | " \n", 526 | " \n", 527 | " \n", 528 | " \n", 529 | " \n", 530 | " \n", 531 | " \n", 532 | "
owner_idpost_idlikesrepostscommentscoordinatespost_typeplatformplatform_type
date
2016-08-1825025025025025018250250250
2016-08-1942742742742742722427427427
2016-08-2045645645645645625456456456
2016-08-2151151151151151130511511511
2016-08-2241041041041041032410410410
\n", 533 | "
" 534 | ], 535 | "text/plain": [ 536 | " owner_id post_id likes reposts comments coordinates \\\n", 537 | "date \n", 538 | "2016-08-18 250 250 250 250 250 18 \n", 539 | "2016-08-19 427 427 427 427 427 22 \n", 540 | "2016-08-20 456 456 456 456 456 25 \n", 541 | "2016-08-21 511 511 511 511 511 30 \n", 542 | "2016-08-22 410 410 410 410 410 32 \n", 543 | "\n", 544 | " post_type platform platform_type \n", 545 | "date \n", 546 | "2016-08-18 250 250 250 \n", 547 | "2016-08-19 427 427 427 \n", 548 | "2016-08-20 456 456 456 \n", 549 | "2016-08-21 511 511 511 \n", 550 | "2016-08-22 410 410 410 " 551 | ] 552 | }, 553 | "execution_count": 168, 554 | "metadata": {}, 555 | "output_type": "execute_result" 556 | } 557 | ], 558 | "source": [ 559 | "group_by_day = df.set_index('date').groupby(pd.TimeGrouper('D')).count()\n", 560 | "group_by_day.head()" 561 | ] 562 | }, 563 | { 564 | "cell_type": "markdown", 565 | "metadata": {}, 566 | "source": [ 567 | "Нарисуем график количества публикация за каждый день" 568 | ] 569 | }, 570 | { 571 | "cell_type": "code", 572 | "execution_count": 169, 573 | "metadata": { 574 | "collapsed": false 575 | }, 576 | "outputs": [ 577 | { 578 | "data": { 579 | "text/plain": [ 580 | "" 581 | ] 582 | }, 583 | "execution_count": 169, 584 | "metadata": {}, 585 | "output_type": "execute_result" 586 | }, 587 | { 588 | "data": { 589 | "image/png": "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\n12dh7gJmKiKWU41luAt4CXAx8F3gL5u3XAJcEBHfB+4FLgJ+CFwD1ResRcQG4NMRsQt4BLgUuCWl\ndFv7VqKpNBrV0eZu2VavXp27BEmZmH+pXOZfKpf5l8pl/uvTMc1d4HDgD4HnAg3gSuCClNJugJTS\nxRHRA3wWOAK4GXh7SunJcc84D9jdfO9BwLXAOW1bgaZlc1cAy5cvz12CpEzMv1Qu8y+Vy/xL5TL/\n9emY5m5K6QvAF57hnrXA2n1cfwI4t/nSPDI2lmHHDkgJIvLWI0mSJEmSJM13HTdzV92p0YDeXnjy\nSdi1K3c1kiRJkiRJ0vxnc1fzQqMBr3xl9bOjGcp19dVX5y5BUibmXyqX+ZfKZf6lcpn/+tjcVXYp\n2dxVZePGjblLkJSJ+ZfKZf6lcpl/qVzmvz42d5Xdww/D7t3wildUv+/Ykbce5XPFFVfkLkFSJuZf\nKpf5l8pl/qVymf/62NxVdo1GdXzuc+GII9y5K0mSJEmSJM2EzV1lN9bcffazYelSm7uSJEmSJEnS\nTNjcVXYjI9VxyRKbu5IkSZIkSdJM2dxVdpN37jpzt1yrVq3KXYKkTMy/VC7zL5XL/EvlMv/1sbmr\n7BoNOPBAOPRQWLbMnbslW758ee4SJGVi/qVymX+pXOZfKpf5r4/NXWU3MlLt2o346ViGlHJXpRxW\nrlyZuwRJmZh/qVzmXyqX+ZfKZf7rY3NX2TUa1bxdqJq7o6PwyCN5a5IkSZIkSZLmO5u7yq7RqHbu\nQtXcBefuSpIkSZIkSc/E5q6yGxvLANXMXXDubqm2bNmSuwRJmZh/qVzmXyqX+ZfKZf7rY3NX2U0e\nywA2d0t18cUX5y5BUibmXyqX+ZfKZf6lcpn/+tjcVXbjxzIcdlj1srlbpk2bNuUuQVIm5l8ql/mX\nymX+pXKZ//rY3FV248cyQLV715m7Zerp6cldgqRMzL9ULvMvlcv8S+Uy//Wxuaus9uyZOJYBqrm7\n7tyVJEmSJEmS9s3mrrJ65JGqwTt5567NXUmSJEmSJGnfbO4qq5GR6mhzVwBr1qzJXYKkTMy/VC7z\nL5XL/EvlMv/1sbmrrBqN6jh+LIMzd8vV29ubuwRJmZh/qVzmXyqX+ZfKZf7rEyml3DXMWxHRBwwO\nDg7S19eXu5yudP318Na3wr/+K4zl+m//Fs48Ex59FA49NG99kiRJkiRJUrsNDQ3R398P0J9SGpru\nPnfuKquxnbuTxzKAoxkkSZIkSZKkfbG5q6xGRmDRook7dG3uSpIkSZIkSc/M5q6yajSqXbsRPz03\n1tx17m55tm3blrsESZmYf6lc5l8ql/mXymX+62NzV1mNNXfHO/xwOOQQd+6W6Pzzz89dgqRMzL9U\nLvMvlcv8S+Uy//WxuausRkZgyZKJ5yKq3bs2d8uzfv363CVIysT8S+Uy/1K5zL9ULvNfH5u7ymqq\nnbtgc7dUvb29uUuQlIn5l8pl/qVymX+pXOa/PjZ3ldW+mrvO3JUkSZIkSZKmZ3NXWY2MTN3cXbbM\nnbuSJEmSJEnSvtjcVVaNxt4zd8GxDKVat25d7hIkZWL+pXKZf6lc5l8ql/mvj81dZbNnz77HMuza\nBT/5SfvrUj6jo6O5S5CUifmXymX+pXKZf6lc5r8+kVLKXcO8FRF9wODg4CB9fX25y+k6Dz4IRx4J\nmzfDr/7qxGs33ADLl8M998Bxx+WpT5IkSZIkScphaGiI/v5+gP6U0tB097lzV9k0GtVxurEM4GgG\nSZIkSZIkaTo2d5XNWHN3urEMYHNXkiRJkiRJmo7NXWUzMlIdp2ruPvvZsGgR7NjR3pqU1/DwcO4S\nJGVi/qVymX+pXOZfKpf5r4/NXWWzr7EMEdXuXXfuluWss87KXYKkTMy/VC7zL5XL/EvlMv/1sbmr\nbBqNanduT8/U123ulmft2rW5S5CUifmXymX+pXKZf6lc5r8+NneVzchINX4hYurrNnfL09fXl7sE\nSZmYf6lc5l8ql/mXymX+62NzV9k0GlOPZBizdKkzdyVJkiRJkqTp2NxVNo3G1F+mNmbZMnfuSpIk\nSZIkSdPpiOZuRCyIiIsi4p6IGI2I70fEBVPc97GI2NG854aIePGk6wdFxOURMRwRj0TElRFxdPtW\novGeqbm7dCkMD8OTT7avJuW1YcOG3CVIysT8S+Uy/1K5zL9ULvNfn45o7gIfBv4TcDbwcuB84PyI\nWD12Q0R8CFgNfAA4GXgMuC4iFo17ziXAO4B3A6cCy4Cr2rEA7W1k5JnHMgDs3NmeepTf0NBQ7hIk\nZWL+pXKZf6lc5l8ql/mvT6SUctfwjCLiS8D9KaX/Z9y5K4HRlNJ7m7/vAD6ZUvpM8/fFwE7gN1NK\nm5u/PwC8J6X09817XgZsBV6fUrptis/tAwYHBwcd9NwCL3sZDAzAJz859fVvfQte/Wr4x3+E172u\nvbVJkiRJkiRJuQwNDdHf3w/Qn1KathveKTt3vwGcFhEvAYiIVwFvAL7S/P044FjgxrE3pJQeBm4F\nTmmeeg2wcNI9dwHbx92jNprJzF1w7q4kSZIkSZI0lYW5C5ihTwCLgW0RsZuqKf37KaVNzevHAolq\np+54O5vXAI4Bnmw2fae7R22yZ0/V3N3XWIajjoKFC23uSpIkSZIkSVPplObuCuDXgfcA3wVOAv4o\nInaklP5n1so0Jw8/XDV497Vzd8ECOOYYm7uSJEmSJEnSVDplLMPFwCdSSl9IKd2ZUvpb4DPA7zWv\n3w8E1e7c8Y5pXhu7Z1Fz9u5090zp9NNPZ2BgYMLrlFNO4eqrr55w3/XXX8/AwMBe7z/nnHP2+hbA\noaEhBgYGGB4ennD+wgsvZN26dRPObd++nYGBAbZt2zbh/GWXXcaaNWsmnBsdHWVgYIAtW7ZMOL9x\n40ZWrVq1V20rVqzIso5Gozr37Gfvex2HHbaFHTvm7zrG6+Q/j/myjrHrnb6OMa7DdbiOma9j7H2d\nvo4xrsN1uI6Zr2NgYKAr1gHd8efhOlxHO9cxMDDQFeuA7vjzcB2uo53rGOu1dfo66vrz6O/v36v3\n+M53vnOv90+lU75QbRj4LymlPxt37veovizt5c3fp/tCtfemlL7gF6rNL//n/8DJJ8Ptt8NJJ01/\n3y/9Ejz1FPzDP7SvNuVz/fXXs3z58txlSMrA/EvlMv9Sucy/VC7z/8xm+oVqnTKW4UvABRHxQ+BO\noA84D/jcuHsuad7zfeBe4CLgh8A1UH3BWkRsAD4dEbuAR4BLgVumauyqtcZ27u5r5i7A0qVwm386\nxfBf7FK5zL9ULvMvlcv8S+Uy//XplObuaqpm7eXA0cAO4E+a5wBIKV0cET3AZ4EjgJuBt6eUnhz3\nnPOA3cCVwEHAtcA57ViAJho/lmFfli515q4kSZIkSZI0lY5o7qaUHgN+t/na131rgbX7uP4EcG7z\npYxGRmDRIujp2fd9S5fCzp3VaIaFHfFPqyRJkiRJktQenfKFauoyjUY1kiFi3/ctWwYpwY9/3J66\nlNfkoeKSymH+pXKZf6lc5l8ql/mvj81dZdFoPPNIBqh27oKjGUqxcePG3CVIysT8S+Uy/1K5zL9U\nLvNfH5u7ymJkxOau9nbFFVfkLkFSJuZfKpf5l8pl/qVymf/62NxVFmNjGZ7J0UdXoxt27Gh9TZIk\nSZIkSVInsbmrLGY6lmHhQjjmGHfuSpIkSZIkSZPZ3FUWMx3LANVoBpu7kiRJkiRJ0kQ2d5XFTMcy\ngM3dkqxatSp3CZIyMf9Sucy/VC7zL5XL/NfH5q7abs8e2LVrdjt3nblbhuXLl+cuQVIm5l8ql/mX\nymX+pXKZ//rY3FXbPfxw1eCdaXN32TJ37pZi5cqVuUuQlIn5l8pl/qVymX+pXOa/PjZ31XYjI9Vx\nNmMZdu6sGsKSJEmSJEmSKjZ31XaNRnWczViGp56C4eHW1SRJkiRJkiR1Gpu7arvZNneXLauOzt3t\nflu2bMldgqRMzL9ULvMvlcv8S+Uy//Wxuau2m8tYBnDubgkuvvji3CVIysT8S+Uy/1K5zL9ULvNf\nH5u7artGAw46CA45ZGb3H3NMdbS52/02bdqUuwRJmZh/qVzmXyqX+ZfKZf7rY3NXbddoVCMZImZ2\n/6JFcNRRNndL0NPTk7sESZmYf6lc5l8ql/mXymX+62NzV203MjLzebtjli1z5q4kSZIkSZI0ns1d\ntV2jMfN5u2OWLnXnriRJkiRJkjSezV213dhYhtmwuVuGNWvW5C5BUibmXyqX+ZfKZf6lcpn/+tjc\nVdvNZSzD0qWOZShBb29v7hIkZWL+pXKZf6lc5l8ql/mvT6SUctcwb0VEHzA4ODhIX19f7nK6xktf\nCmecARdfPPP3rF8P/+//Cz/5ycy/iE2SJEmSJEnqRENDQ/T39wP0p5SGprvPnbtqu7mOZXjyyeq9\nkiRJkiRJkmzuqs327IFdu+bW3AXn7kqSJEmSJEljbO6qrR56qGrwLlkyu/eNNXedu9vdtm3blrsE\nSZmYf6lc5l8ql/mXymX+62NzV201NlbBnbuayvnnn5+7BEmZmH+pXOZfKpf5l8pl/utjc1dtNTJS\nHWfb3D34YDjySJu73W79+vW5S5CUifmXymX+pXKZf6lc5r8+NnfVVmM7d2c7lgGq3bs2d7tbb29v\n7hIkZWL+pXKZf6lc5l8ql/mvj81dtdVcxzJA1dx15q4kSZIkSZJUsbmrtmo04KCD4JBDZv/eZcvc\nuStJkiRJkiSNsbmrthoZqUYyRMz+vY5l6H7r1q3LXYKkTMy/VC7zL5XL/EvlMv/1sbmrtmo05jaS\nAX7a3E2p3po0f4yOjuYuQVIm5l8ql/mXymX+pXKZ//pEslM2rYjoAwYHBwfp6+vLXU5X+I3fgO3b\n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\n3SRQcFckvSZMmMDREUcap071IMOTT/rQtSlTfBh+RTB0qF8oHnvMg5gdO3ru1REjfAhvZfbss54X\ntkMHnw03GT23Q4AFC3zIX5Mm0T88ZbpMqP8FVq3ynso77RR1SdyUKT4Z5DbbwMcfRzchXSo88IDn\nP3/55fWDD1I6K1f6uaZ5c2+syiaZVP8lNULw/89DDvH7EUmtl17yUSi33uoNzIW9/ro37o8fH30j\nfxT1/6ab/H5/3rzsG20kUpHo+r+ufff1htD4FEYK7iaBgrsildecOZ4bbvPNvXU/nbk2U+GTT6B1\nazjrLG8NBA9g/d//eXB3wAC44opoyxiVZ56BM87wYPeIERU3JYdkt3nzvDd53bpRlyS5QvAhaN9/\n73mPyzJhobiHH/b83p9/DnvuGXVpRNZ3/fX+fzp3bmKjY6RsvvoKDjzQz63PPlt043IInhqnevXK\nmXP2wAM9/dIzz0RdEhGRtS65xOdo+fbbta8lGtytxCnURUSKt8023uvh22+ha1fPW5at5s/3nGt7\n7+25QwtsvLG3Cl57LVx5pecdy+bjLIunnvJey506eT5TBXYlU229dcUL7IIHHQYNgpkzPTWOlM3y\n5d5D77TTFNiVzNWhAyxc6OlmJDX+/HNt3vjHHy9+1JCZ55qdPBnefjudJYzewoU+CkadBUUk07Ru\n7anvfvut9J/NiuCumV1nZlPMbJGZ/WZmL5rZrkWsd7OZ/WpmS83sdTPbudD71c3sfjNbYGaLzew5\nM9s6fUciItmkWTMfov/cc3DLLVGXpmxWr/Z0A8uX+3EU7hVnBnfc4cGVu+/2QPaqVZEUNe2eeMIn\nAOvSxYPcGpYnEo3dd/cc57fc4qlMpPQeecQnfuzdO+qSiBRvn3083c1zz0VdkoppzRpvrJ4/3yfe\n3HTTktc//nhv+M/2OQFKa+JE77ms4K6IZJpWrfzre++V/rNZEdwFDgEGAwcCRwIbAxPM7J+sc2bW\nE7gYOBc4AFgCjDez+PlYBwH/Bk4GDgW2BbIsK5lIxTVmzJioi7CeE0/0gEOfPtmXwxC8V8abb/qw\ns+23L369yy7ziaSefhpOOAGWLElfGaMwYoQHdbt29dx/CuxGLxPrv6RPnz4+cuDmm6MuSfZZuhRu\nv93PaU2aRF2aslH9rxzMvPfuiy8mtyF54UJvIKpTx/MVnnkm9OvnE4n98EPlGZV0442eQ/fppxPL\nGV/Qe/eNN+DDD1NfvuKku/5PmOCTlJZ0Xywi6aHr/7oaNIAddvC0kKWVFcHdEEK7EMJ/QwjTQwhf\nAF2BhkCLuNUuA24JIbwcQvgS6IIHb9sDmFltoDtwRQjh7RDCVKAb0MrMNEemSAYYNWpU1EUoUq9e\nno+1Sxf49NOoS5O455+HO++Eu+6CNm02vP5pp8Grr/oQvSOOqLg96IYN89nkzzkHHn0UNsqKK2HF\nl6n1X9Jj6639XPvAAzBjRtSlyS733+8TN950U9QlKTvV/8rjlFP8//Wtt8q/rRB8hFXTpt6IfdFF\nsP/+HtC94w7IyfEg52ab+evdukH//vDaazB7tn++ohg92o+5Xz/PtZuok07yQOdtt6WubBuSzvof\nQmZMIiciTtf/9bVuXbaeu1k5oVos3cLXwF4hhK/MrBHwPbBPCOHzuPXeAqaGEK4wsyOA14G6IYRF\ncev8BAwMIdxbxH40oZqIAN4z6tBDfajbxx97ICKTTZ8OBxwA7dp5D47icq4VJS8PjjvOJ5MbP97z\ntlUUjz3mk8idf74HRBTYFckcy5d7kKZZMxg7NurSZIfFi6FRIzj55LWTZYpkshA84HrkkZ5OpKy+\n+cYnEJw0yRvgBw70+RLi9/PLL/DllzBtmi9ffumTjRWMTqpdG/bYY+2y557+tX790t03Re3zz6Fl\nSw9mP/VU6ctekKYqL897PldkM2Z4MPuVV/weWUQk0zz4IFx6qedQr1WrAk+oZmaGp1d4N4TwVezl\n+kAACqcd/i32HkA9YGV8YLeIdUREilSzpucvW7nSezmsWBF1iYq3aJGnk2jY0FMOlPYmv3lzeP99\nz9d78MH+0FARPPywB3YvvNB7ByqwK5JZatTw0Qb/+5/nRMwmy5d7o9rYsTBggJ9njj7a0yT06OEN\nhKlw330e4L3hhtRsXyTZ4lMzrF5d+s8vX+5pXPbaC376yWcVf/rpdQO7Bftp0ACOPRauuspH7UyZ\n4vdIP/zg55nrr/dAc24uXHcdHHUUbLst1KvnPYGzwe+/+wRqu+5atns+8JFbO+0Ube/ddJkwAapV\ng8MOi7okIiJFa93ar49TppTuc9n4aPsAsDtwWtQFEZHKpUEDfxj5+GN/cM/EgQ8heB7ZOXO8rBua\nTKM4O+3kAd5ttvEey9k+k/IDD3hv3UsugSFDsqtHjkhlcuqpcNBBHoxZsybq0qxr6VL44gs/t959\nN5x3HrRt67nRatb0ieFOOMHzXr73ng8FP/RQD8DuvXdyhqHH+/NPH2J+3nnKHSnZ5ZRTPPVTae8t\nJk3yunT77XD11d4TtzQpCMAbdhs18snEevb0tA55efD3394b+MUXPfDXqRM8/njptp1uq1d7YHbR\nIi93zZpl207Vqh7cfv557+FckY0f74GTWrWiLomISNH22MNzyJc2NUNWBXfNbAjQDjg8hDAn7q25\ngOG9c+PVi71XsE61WO7d4tYpUrt27cjJyVlnadmy5XrJnydMmEBOTs56n7/ooosYOnToOq/l5eWR\nk5PDgkJJLXv37s2dd965zmuzZs0iJyeHGYWS0A0ePJhrrrlmndeWLl1KTk4O7xbKwDxq1Ci6deu2\nXtk6duyo49Bx6DhKcRyLFk1g991zGDYM7o1L5pIpx7H//t148UUYOdJ7cRR3HIn8PerV82DErrvm\nccQROTz+eOb9PRI5jiFDPA9fp055/PRTDr//np3HUSCT64eOQ8dR3uM47bSOtG8/hs8+84kPoziO\ne+8dzEknXUO/fp6b+/DDYdttl1KrVg7Nmr3LSSf5xG8ffwxLloyiTp1uPPYYvPMO/PqrB4maNu1I\n585jePRR+Owzbyhr02YCO+6Yw19/Jec4BgzwUSSdO+v/SseRXcfRv39HttpqDM8+m9hxDBw4lM6d\nvTGlXj146qk8vvgihyVLknccVarAdtstZdiwHC655F3OOcdz9D7wQOb+Pa69FiZOHEzbttesk0Kr\nLP9XtWuPYfvtPW9vuo8D0lM/Vqzw+9qjj87u44in49Bx6Dgq1nG0aNGC9u1zqF49h/vu89jj8ccf\nv97nixRCyIoFGALMBhoX8/6v+GRpBT/XBpYBHeJ+XgGcGLdOEyAfOKCYbTYHQm5ubhCR1OvatWvU\nRUjY1VeHsNFGIYwbF3VJ1powwcvUq1dyt7t8eQgdO4ZgFsKDDyZ326k2aFAIEMJVV4WQnx91aaQk\n2VT/JfVOOy2E+vVDWLw4/fu+9lo/b9SpE8J++3lZbrghhMcfD+G990L47bfSn0/WrAnh/vtD2HTT\nELbbLoSXXy5fGefP921dfXX5tpMpVP8rn6uvDmGrrUJYtar4ddasCeHRR0OoWzeELbYIYehQfy0d\n8vNDuPxyPxf075+efZbGE0942e69N3nbHDLE7yO//TZ520xEuur/pEn+O5s6NS27E5EE6PpftNtu\nC2GzzUJYvTqE3NzcgKehbR5KiJlmRc9dM3sAOAPoBCwxs3qxpUbcaoOAG8zsP9lX1a4AACAASURB\nVGa2FzAS+Bl4CSB4rt2hwAAzO9zMWgDDgPdCCKXMZiEiqXB0Fk1d26+f53Hr2BG+/jrq0sDMmXD6\n6Z4vrm/f5G67enWfoOPSS33ykt69MzMlRWEDBsDll/uwy7vvViqGTJdN9V9S74474I8/4K670rvf\nF17w8/tdd/n+P/4YRo2CW26Bs87yPORbb13688lGG3k6n2nTPFfo8cfDGWf4JJ1lcffdfh7u0aNs\nn880qv+VT4cO/v8/eXLR70+b5mlN/u//fKKwGTOge/f05cs38/uI66/3FBC33JI59z55eT6q4Kyz\nPN1UsnTv7ue3fv2St81EpKv+T5jgx9esWVp2JyIJ0PW/aK1b+5wKX36Z+GcsZMpVqgRmlo9Hqgvr\nFkIYGbdeH+BcYHNgMnBRCOG7uPerA/2B04HqwLjYOvOK2W9zIDc3N5fmzZsn6WhEpKL46y+fnXjN\nGvjwQ6hbN5pyLFvmF4CFC31SkC22SM1+QvCAx7XXwrnnwv33e562THT33R70uP56uPVWBXZFstF1\n13n6m6+/Tk9O2RkzYP/94bjjfDKlVJ03QvDZ6S+/3ANVgwd7Q2Gi+5s7Fxo3hiuv9PObSDYKAXbc\nEf79b099UGDpUg+k9u/v+f8feshTo0Tpttt80sKePb3hKcp7innzYL/9oH59TwVTo8aGP1Ma99zj\n93nffef5xCuS5s09N/oTT0RdEhGRki1b5nl3Bw6Eli3zaNGiBUCLEEJecZ/Jip67IYSNQghVilhG\nFlqvTwhh2xBCzRDCMfGB3dj7K0IIl4QQ/hVC2CyE0KG4wK6IyIbUqeMzo8+f7xNalGXW5/IKwfPJ\nfvWV9zhLVWAX/GGmZ08YPtxnZO7QwS88maZfPw/s3nijArsi2ey663xSyF69Ur+vxYvhxBOhYcOy\nzzifKDPo3NnP20cc4aMuTjgBfvklsc/36+ezvV91VerKKJJqZj6x2gsvrJ088bXXYM89/WH2pps8\nX3XUgV3wc9DAgXDnnXDZZZCfH005Vq3ySSdXrPDfW7IDu+CTz9apk/5RE6k2bx5Mner5dkVEMt0m\nm0CLFlAohW+JsiK4KyKSqXbeGUaPhokToxke+8gjHmx9+GHYd9/07LNrV3jpJZ9xuG1b+OCD9Ox3\nQ+bO9Yeu666DPn18wiMFdkWyV+3a3oPvv/+FTz5J3X5C8ImTfvnFAyabbZa6fcWrV897CL/4oh/f\n7rv7Ob2kwNHPP3tPxquuim60iEiydOgAv/3m9aBDB2jXznvrfvGFN9BWrx51Cde6/HKve4MHw3nn\nrQ1Ip9NVV/ns6c8/Dw0apGYftWr5qIChQ32CyIrijTf861FHRVsOEZFEtW7t5/xEKbgrIhmj8OyS\n2eLII71Hx8CBMGxY+vb74Yeea+3CC6FLl/TtF3wY5aRJ8PvvnoOyVat1e9+k07RpcPbZPnxw2DAf\nytm7d/rLIeWTrfVfUuvss2GPPTyokapMYnff7cGSkSOhSZPU7KMk7dt7L94OHTxo1LatD4kuyu23\ne/DlssvSW8ZUU/2vnA480FOunHGGpxh48knPi7rLLlGXrGjnnQcjRvi9Rpcu6R2xNXy4B5YHD/YH\n/lS66CLvFXzPPandT4F01P/x4z3X7jbbpHxXIlIKuv4Xr1UrmD0b5sxJbH0Fd0UkY9yVxWPALr7Y\nJ/04//zStbCV1W+/+XDG/fbzoHIUDjoIpk/3XrxVqsDJJ3tg5IEHPGdeKoXgweV27XwI5/jx3sNv\n9mwNVc5W2Vz/JXWqVvUAwzvvwJgxyd/+xIne2//66z3IGpXNN4fHHvPeZTNnehDinnvWbTD76Sdf\np0cP79Vckaj+V05mfu2+4grPed2pU+aPuOnSBZ5+2kdtdewIK1emdn+rV/uktuef7/eZ552X2v2B\np2W49FLvqVzWSR9LI9X1PwRvNFBKBpHMo+t/8Vq18q+ffprY+lkxoVpUNKGaSHotXbqUmjVrRl2M\nMlu50od7zZjhM6w3bJia/axe7b2FZ8zwGZO33TY1+ymtKVM8GPHccx6ouPBCD3rXq5e8faxa5Q9U\n/fv7ha5ZM5/FumNHz0Ep2Svb67+k1nHHwbffeg/XZNX1mTM9n1mLFvDqq95IlQmWLPHJm+691xvw\nhg3zRqyzz4aXX4YffvDeuxWJ6r9km//9zxvZjzzS73s22SS521+82Ov+oEHesJOT4/c/6UpV8fvv\nPuHdpZf6hHKplOr6/8UXfr/4+uv+9xKRzKHrf8maNIG9987j2WcryIRqIlI5ZPuJvVq1tTf4OTn+\ngJ4KPXt67+Bnn82cwC7AAQd43rzvvvPJggYO9FQJ55zjAZny+OsvD+g2bgxnnukB49df9wBv584K\n7FYE2V7/JbX694cff4T770/O9pYv99EGm27qveIyJbALHrgdOBDef9+vI82be77PESO8l3FFC+yC\n6r9kn//8xxtb3nwTjj8e/v47Odv99Vev5w0b+kikgw+G3FwfJZXOHMRbbumN9IMHwx9/pHZfqa7/\nEyZ4molUp7MQkdLT9b9krVv7ZJCJUHBXRCSJttoKxo71AOdZZyV/RuWnn4YBAzzQccghyd12sjRq\n5D1NZs+Gvn29R9wee/jDz1tvlS5v5uzZ3jN3++192PSRR8Lnn8O4cf59pg/fFJHk2GMPH5J8883e\no6w8QvCcktOmea7wLbdMThmT7aCDfHTGddd5ULtePR+aLSKZ4aij/H5kyhQ45hhviC6rL77wCWt3\n3NHr+9lney/9J5/0Bp4oXHmlj5gaPDia/SfL+PFw2GEe4BURySatWxc/D0NhCu6KiCRZs2Y+u/vz\nz3sgIlm+/NJv9jt18mFyma5uXe9l/NNP8PjjPgS6TRsfZjxqlD8wFCcvzydYadTIZ2y+6CLfzvDh\nsNdeaToAEckofft6DtrynlcffdSHOz/0UHRBk0RVr+7H/eWXnh9YwQmRzHLooV43v/rKJ0MsTeNT\nCD4K6Zhj/N5x4kS44w5v2O7fP3XpvRJVrx6ce6432C9eHG1ZymrZMs/Zrny7IpKNWrXydIeJUHBX\nRDLGNddcE3URkubEE32SkL59PX0CwIoVMG+et77l5vpQvjFjfIb2wYM9p1mPHt4z6/TT4d//9t65\nzZp5T47994eddoJHHsmuHqvVqnkv5s8/994TW27pAeqdd/ZeyIsW+Xr5+d7L94gjPAfm++/7+7Nn\n+8NOJqWgkOSrSPVfUqNePe/B/8AD8PXXZdvGRx/BJZfABRf4eSlbNGkCTZtGXYrUUf2XbHbAAX5P\nV9CI/dtvJa+/cqXf++2zjwcd58/3Hro//OCpGOrUSU+5E3HNNZ5y4sEHU7mP1NX/yZP9/vuYY1K2\nCxEpB13/S7bLLj7ZbiKqprYoIiKJaxh1F4Uk69XLe1uddprniS1pRuXq1f1mvnbtdb82brz25803\n996s2Zpv0cwfYo4+Gj77zAO3PXt6ALxTJ3j7bZg+3YPYo0d7gLyqrlKVRkWr/5Ial1/uPW579PAc\nlKUxb57n2W3e3HuiSeZQ/Zdst88+fh9z5JGeAuCNN6BBg3XX+fNPePhhuO8+z63brp3n127TJnMb\n7Rs0gG7dfMLciy+GVKTHTGX9Hz/eOwfsvnvKdiEi5aDrf8nMEr8+WChN8sNKxsyaA7m5ubk0z/Rx\neyKSkZYu9ZQE+flFB29r1/YlnZNkZJJffvFeyyNGwIEHeo+V1q0z9yFHRKL39NM+umHiRO/pn4jV\nqz0/5ldfedqX7bZLbRlFpHL67jtPz1Clip+jGjXytFL33guPPeYN/Z07ez7bbAk4/vij9x675x64\n7LKoS1M6e+3l6cCGD4+6JCIiZZOXl0eLFi0AWoQQ8opbT8HdEii4KyIiIpJZQvAZ5Jcvh08+8SDK\nhlx9tffWnTTJc2SKiKTKzJke4F2xws9Vzz3no68uuMB7v9avH3UJS69rV88P/MMP2dMh4ddfvSFv\n1CgfRSciko0SDe4q566IiIiIZA0zT+vy6ac+eeWGjB7tPc7691dgV0RSb4cdfBKvOnW8Aeq++2DW\nLLj11uwM7AJcdx3MmeOj0bLF66/79eLII6MuiYhI6im4KyIZY8aMGVEXQUQiovovpdGyJXTs6BOs\nLVlS/HrTpkH37p7GIduGE1cmqv9S0Wy7rc8v8N13cNFF2TtfQoEmTeDUU6FfP1i1KrnbTlX9Hz/e\nc6z/618p2byIJIGu/8mj4K6IZIwePXpEXQQRiYjqv5RWv36wcCHcfXfR7//1l0/M2LgxPPqocnln\nMtV/qYiqVKlY551evTx/8FNPJXe7qaj/+fnec/foo5O+aRFJIl3/k0fBXRHJGEOGDIm6CCISEdV/\nKa0dd4TLL4e77vLJGePl50OXLjBvHrzwQvb3mqvoVP9FMt9ee0H79nD77bBmTfK2m4r6/+mnsGAB\nHHNM0jctIkmk63/yKLgrIhmjYcOGURdBRCKi+i9lcd11sOmm3qMs3h13wNix8MQTsPPO0ZRNEqf6\nL5IdevWCb76BZ59N3jZTUf/Hj/dGvZYtk75pEUkiXf+TR8FdEREREclKderAzTfDiBGQm+uvjRsH\nN94IvXvD8cdHWz4RkYpkv/3g2GPhttt8hESmmjAB2rSBatWiLomISHpUjboAIiIiIiJldc45MHgw\nXHUVDBsGnTrBccfBTTdFXTIRkYrnhhugdWvo3NnT49Su7Q1tRX0tWKqmMerw99/w3nswYED69iki\nEjUFd0UkY9x555307Nkz6mKISARU/6WsqlaFe+7xgG6rVlC3rqdj2Ejj07KG6r9I9mjVyhvTXn8d\n3n/fJ69ctKjkPLw1a64b8I0PAs+ffyfPPtuTGjWSU76334ZVqzSZmkg20PU/eRTcFZGMsXTp0qiL\nICIRUf2X8jj2WJ845513PC1D3bpRl0hKQ/VfJLv077/uzyHA0qUe5C0I9hZ8Leq1gq+//goffbSU\npk3hzjvh1FPBrHxlGz8edtgBdtmlfNsRkdTT9T95LIQQdRkylpk1B3Jzc3Np3rx51MURERERkWIs\nWgRz58Kuu0ZdEhERSdQ338A11/gkmC1bwsCBcOCBZd9e06Zw6KHwyCPJK6OISFTy8vJo0aIFQIsQ\nQl5x62nAmoiIiIhkvdq1FdgVEck2u+4KL70EEyd679+DDvLc6bNmlX5bM2fC11/7SA4RkcpEwV0R\nERERERERicwRR0BuLgwdCm++CU2aQK9esHhx4tuYMMHzrR9xROrKKSKSiRTcFZGMsWDBgqiLICIR\nUf0XqbxU/0Uqr/j6X6UKdO/uqRquugoGDPCevUOHljxhW4EJE+CAA5R3XSRb6PqfPAruikjG6N69\ne9RFEJGIqP6LVF6q/yKVV1H1f7PN4NZbPcXCEUfAOedAixYwaVLx21mzBt54QykZRLKJrv/Jo+Cu\niGSMPn36RF0EEYmI6r9I5aX6L1J5lVT/GzaEJ5+EDz+EWrWgbVvIyfGgb2GffAJ//glHH526sopI\ncun6nzwK7opIxmjevHnURRCRiKj+i1Reqv8ilVci9f/AA+Hdd+GZZ+Dzz2HPPeGyy2DhwrXrjB/v\nE2secEAKCysiSaXrf/IouCsiIiIiIiIiGcsMTj0VZsyAW26B4cNh551h0CBYudLz7bZtC1WrRl1S\nEZH0U3BXRERERERERDJejRpw7bXw7bfQoYNPvLbnnp66Qfl2RaSyUnBXRDLG0KFDoy6CiERE9V+k\n8lL9F6m8ylr/69WDhx+GTz+FHXeEKlXg2GOTWzYRSS1d/5NHwV0RyRh5eXlRF0FEIqL6L1J5qf6L\nVF7lrf977eX5dhcsgB12SFKhRCQtdP1PHgshRF2GjGVmzYHc3NxcJXoWERERERERERGRtMjLy6NF\nixYALUIIxUbD1XNXREREREREREREJAspuCsiIiIiIiIiIiKShRTcFREREREREREREclCCu6KSMbI\nycmJuggiEhHVf5HKS/VfpPJS/RepvFT/k0fBXRHJGBdffHHURRCRiKj+i1Reqv8ilZfqv0jlpfqf\nPBZCiLoMGcvMmgO5ubm5NG/ePOriiIiIiIiIiIiISCWQl5dHixYtAFqEEPKKW089d0VERERERERE\nRESykIK7IiIiIiIiIiIiIllIwV0RyRhjxoyJuggiEhHVf5HKS/VfpPJS/RepvFT/kycrgrtmdoiZ\njTWzX8ws38zWm1LPzG42s1/NbKmZvW5mOxd6v7qZ3W9mC8xssZk9Z2Zbp+8oRGRD7rzzzqiLICIR\nUf0XqbxU/0UqL9V/kcpL9T95siK4C9QCPgUuBNabAc7MegIXA+cCBwBLgPFmVi1utUHAv4GTgUOB\nbYHnU1tsESmNrbbaKuoiiEhEVP9FKi/Vf5HKS/VfpPJS/U+eqlEXIBEhhHHAOAAzsyJWuQy4JYTw\ncmydLsBvQHtgtJnVBroDp4UQ3o6t0w2YbmYHhBCmpOEwRERERERERERERJImW3ruFsvMGgH1gYkF\nr4UQFgEfAS1jL+2HB7Lj1/kamBW3joiIiIiIiIiIiEjWyPrgLh7YDXhP3Xi/xd4DqAesjAV9i1tH\nREREREREREREJGtkRVqGCNUAOOqoo9hzzz3XeWPhwoV07dqVNm3a/PPaBx98wOjRoxk4cOA66/br\n14+mTZvSvn37f16bPn06jzzyCDfddBN169b95/WHHnqIGjVq0LVr139emzNnDnfddReXXnopjRo1\n+uf1p59+mrlz53L55Zf/89qyZcu4/vrr6dKlC/vuu+8/r48bN44PP/yQPn36rFO2a6+9lmOOOUbH\noePIiOOYMmUKeXl5WX8cBXQcOg4dR+LHUVD/s/04Cug4dBw6jsSPY8qUKbzyyitZfxxQMf4eOg4d\nRzqPY8qUKfTo0SPrjwMqxt9Dx6HjSOdxfPTRRxx22GFZfxzJ+nsMGTKErbfeep11v/rqq4Jva1AC\nC2G9+ckympnlA+1DCGNjPzcCvgf2CSF8HrfeW8DUEMIVZtYGeAOoG99718x+AgaGEO4tZl8HA++l\n6lhEREREREREREREStAqhPB+cW9mfc/dEMKPZjYXaAt8DhCbQO1A4P7YarnA6tg6L8bWaQI0BD4o\nYfOfAi1SU3IRERERERERERGREs0o6c2sCO6aWS1gZ8BiLzU2s72BhSGE2cAg4AYz+w74CbgF+Bl4\nCXyCNTMbCgwwsz+AxcB9wHshhCnF7TeEsBTIS81RiYiIiIiIiIiIiJRdVgR3gf2AN/GJ0wJwT+z1\nEUD3EMJdZlYTeBjYHJgMHBdCWBm3jSuANcBzQHVgHHBReoovIiIiIiIiIiIiklxZl3NXRERERERE\nRERERGCjqAsgIiIiIiIiIiIiIqWn4K6IiIiIiIhIBWNmDcxsmJn9YmYrzOwnMxtkZluUYhuHmVl+\nbNLyktarbmbDzexzM1tlZi8UsU59M3vSzL42szVmNiCB/Tczs6fMbJaZLTWzaWZ2aTHrvWNmy8xs\nppldU5Z9m1kdM7vfzH41s+VmNsPMjt1QOUUyTZrr/2FmNiZWb/42s6lm1qmYbcUva8xs6xK2q/qf\nIAV3RSoBMzvIzFab2f/SuM8tzOy12MVkeeyEPNjMNiu0Xokn4iK2u4OZPWZmP8RO8N+aWR8z27jQ\netub2StmtsTM5prZXWa2Udz7G7wBja1Xzcxui10Ml8f227UcvxqRtDGzf5nZg7G6tdzM5sTqZcs0\n7PteM/sktt/1Jic1s13NbFKsfi4zs+/N7BYzK3Y+ANV/kcRFVf8TeRAzs95xD3XxD3mLS9iu6r9I\nKZhZI+ATYCegY+zreUBb4AMz2zzRTeHz3tgG1qsCLAXuBV4vZp3qwDx8AvRPE9x/C+A34Axgd+A2\n4A4zu/CfAvrzxXjgR6A5cA3Qx8zOKc2+Y+eTN4CGwEnArsD/Ab8kWFaRjBBB/T8Y+AyvN3sBw4GR\nZtau0HoB2AWoH1u2CSHMK2G7qv8JypYJ1USkfM4G7gPONrP6IYS5adhnPjAG6AXMB3YGHgDqAmfC\nOifiCfjFZi9guJn9EUJ4rJjtNsUvLv8HfA/sCTwG1AR6xLa7EfAq8CtwELAt8F9gJXBDbDvxN6An\nl3AczwJbAd1i+9sGNYxJ9ngBv9Z3xm946uE3dVumYd8BGAocCDQr4v1V+MSoecCfwN54XTbW1tPC\nVP9FEhdV/Y9/EJuNP/A9amarQwgPxNa5G3iw0OcmAR+VsF3Vf5HSeQBYARwVN9H4z2b2Kf4/fRux\nCcbNrBoe9Dgd2BqYBdyB18tJ+DX9DzMLwIgQQvfCOwshLI3bXmugThHrzMQnOsfMzk7kIEIIwwu9\n9JOZHYwHXwrOKWcCGwNnhxBWA9PNbF/gSvw8kei+z8YnaD8ohLAm9tqsRMopkmHSXf/vKPTSfWZ2\nNF5PXy303vwQwqJEDkL1vxRCCFq0aKnAC1ALWIS3kD0FXFvo/bOAPwq9dgKQX+i1G/CHtT+Bh4Db\ngamlLMslwMy4ny8AFgBV4167A/iqlNu9Gvgu7ufj8MDRv+JeOw/4I35fce8NB14o4vVjgYXA5lH/\nHbVoKe2CP1TlA4cksN5jeGv2X3iLdbO493sDU4Fz8RucJcAzwGYJlqM3kJfguvcAb5fyOFX/tWgp\ntGRK/Y/bzhDgjRLe3ztW3oNLuV3Vfy1ailjwzhRrgB7FvP8wsCDu52eAn4AcYEfgUKAD3qByYmxb\nO+GBnw3W/+LqVqF13gQGlPH4/guMjvt5ROH9AYfHyl0n0X0DrwAjY7+fucAXwHXARlH/TbVoSXSJ\nuv7HbXcycFfcz4fFrvU/4I2wE0p73Y9tR/W/iEWtzyIVX0dgegjhW+BJvEWqsFDSa2Z2BnA9PsRh\nP3xowoXFfK5IZrYt3sL2VtzLBwHvBG9hKzAeaGJm67X2l2Bz/CEsfrtfhBAWFNpuHWCPUmz3P/hw\nlp5m9rN5jp67zaxGKbYhEpW/Y0v7WIt8cZ7De/Idgw9lygPeKDRca2f8Ju/fsfX2ZW1reVKY2c54\nQOWtUn5U9V9kfZlW/+uwbj0t7Bzg6xDC+6Xcruq/SNF2wQMzM4p5fzpQN5a+ZVe8jncLIYwNIfwU\nQngnhPBs8IhHQR2bH0KYF0IoNn1KOsR67Z2KB2AK1Mc7ocT7Le69RDXGfxcb4Y1FNwNX4SMRRbJF\n5PXfzE7F4wbD4l6egze4nozHBWYDb5nZPokemOp/8RTcFan4uuOtWwDjgNpmdmgpt3Ex8GgIYWQI\n4bsQwi14S9YGxfLuLQF+xnsF/V/c2+U+EccCQhfjvYmTtt2YxsAh+ANhe+Ay4BTg/lJsQyQSwYcT\nnRVb/jSzd2P5I/cqWMfMWuE3XqeGEKaGEL4PIfTA6+opcZurDnQOIXwRQngX74V/mpUwAUKizOw9\nM1sGfI039vQuxWdV/0WKkEn1v5gHsfj3qwOdiA2dTJTqv0hCNpQnE7zn/GrgnRSXpdzMbE887Vuf\nEMLEFOxiI/yccW7svPgsPnz9/BTsSyTVIqn/ZtYGD+qeE0L4J8AcQvgmhPBorG59GEI4G3ifWLqE\nBLar+l8CBXdFKjAzawIcADwN/zzsjabo3rslaQJ8XOi1KQl+9nK8l08OPpxjYCn3XSwz2w54DXgm\nhDBsQ+uXwUb40JFOIYRPQgjj8Nw9Z8UeRkUyWgjhRTzn5H/wunIYkGdmXWKr7A1sBiw0s8UFCz4k\na6e4Tc0K6+bq/gDPW9kkCcU8FT9HdAL+bRuYVLGA6r9IyTKh/if4IHYSsCk+FDIhqv8iG/QdPsJu\nt2Le3x1Py7YAWJa2UpWDme2Op455KKyf33Munlc8Xr249xI1B/gm1mOxwHSgvpUw4atIhoms/pvZ\nYcBY4LIQwpMJfGQKPkJoQ9tV/d8ABXdFKraz8QewObEZoVfhLU8nxyYzA394KdyqtzFJEhu+8U0I\n4eXYvi8ws/iTbZlOxLE0D5OAd0MI5xV6O5kn+F9CCH/HvTYd/301KMV2RCITQlgZQpgYQrgthNAa\neBzoG3t7UzznVTM80FOwNMEnPEpH+X4JIcwIITyD57XqY2Yl9jRQ/RdJTJT1fwMPYvHOBl4OIcxP\ncLuq/yIbEEJYCLwOXFi4QcLM6uMNqk/HXvoCjwscVszmCiZjqpKCoibEzPbA6/3wEMJNRazyAXCo\nmcWX8Wg83ctfpdjVe6wfaGoCzCmURk4kY0VV/83scOBl4JoQwtAEi7sPfs0tabuq/wlQcFekgoqd\n3DrjPU32LrT8is+GCTAf2MzMNon7+L6FNvc1sH+h1wr/nIgqeCtiwUWmTCfiWI+dN/HexOvN1hnb\n7l5m9q9C2/0L+KoU5X0P2NbMasa91gQPiP9ciu2IZJLp+ESL4Pk16wNrQgg/FFri81g2jN0MFmiJ\nT1LwdZLLVgWoSgn3J6r/IuWSlvqfwINYwXo7Am1IMCWD6r9IqVyM33OPN7NDzKyBmR2LT2I0G58s\nmeCzyI8EhpnZCWa2o5kdZmYdYtuZid+//yeWo7PW+rtyZrZbLH/mFkAdM9vbzPYutM7esXU2BbaK\n/VxcD8OCEQBv4vmzB5lZvdgSX8+fwoNQw8xsdzPrCFyKT9Ramn0/CGxhZveZ2S5m9m+84XlIceUT\nyVBprf+xVAwvA/cCL8bV07px61xmZjlmtpOZ7WFmg/B7gGLrl+p/KRQ305oWLVqye8FzxC2jiBkt\ngX7AlNj3dYFFwCA8x1wn/MFlTdz6nfAZsrvgrVk3AH8CuSXs/zigK56vbgd8IpZpwNtx69TGA80j\n8OEhHfEJYM4uYbvbAt/iF6Zt8R459YB6cetsBHyGD9lshk8A8xtwS6Ft7Ya3Fr4ETCQW/I57vxZ+\nQXsmtu6h+MPsQ1H/fbVo2dCCP1hNBM4A9sKHWnfAW8cfiVvvbTzIc1Ssrh4M3Ao0j73fG1iM31Q1\nw/NQzgCe2MD+d4rVr4fwgFJB41LV2PudYuVpCjTC0zP8DIwoYZuq/1q0FYYOxQAABYpJREFUJLBE\nWf+BPYF5+LW9XtzyryLWvQV/yLQEjkn1X4uWUi7A9njuy1+B5cBPeIq0uoXWqwb0j12HC/LgnxX3\nfq/YNlYDw0rY349440/Bkk/cM0VsnfxC66wBfihhm72LWH+9z8TOPW8DS4FZwNVFbGuD+wYOxPOA\nLo2dc3omco7SoiXTlnTWf2B4MfV0Utw618Tq1BK8g9lE4NANHIPqf4KLxQ5ARCoYMxsLEELIKeK9\n/YEP8QeZL80sBx+CuR1+kh2LP/xViftML7wFrAaet3cJsH8IoVUx+z8cT0C+G95qOBt4HrgzhLAo\nbr098QlK9gcWAPeFEPqXcFxnse6sm+DDJEOh8m6Pt74dHivr48B1IYT8uHV+BBpuYDu7AoOBVsDv\n+IPejSGEFcWVUSQTmFk1/IboaDzQujFeD0cDdxT8D8da4G/DZ67dCh+6/A5eX34xs97ACfhkSDfi\nDUL/A84LJfewfxMPiBTWKIQwy3wW3R6sndF3Jj7546AQwsoiPqf6L5KgKOt/7DNF9dadGUJoHLde\nQb1/PJTQuzdufdV/ERERkSIouCsiZWJmE/D8M2dFXRYRSZ2C4E4IoXnUZRGR9FL9FxEREcl8GT/j\nm4hEL5aP93x8WGY+nq+3LXBklOUSEREREREREanMFNwVkUQEoB1wPZ6W4WvgpBDCm5GWSkRERERE\nRESkElNaBhEREREREREREZEstFHUBRARERERERERERGR0lNwV0RERERERERERCQLKbgrIiIiIiIi\nIiIikoUU3BURERERERERERHJQgruioiIiIiIiIiIiGQhBXdFRERERMrAzN40swFRl0NEREREKi8F\nd0VEREREUszMDjOzfDOrHXVZRERERKTiUHBXRERERCT1DAixryIiIiIiSaHgroiIiIjIBphZTTMb\naWaLzewXM7uy0PtnmtnHZrbIzOaY2ZNmtlXsvR2ASbFV/zCzNWY2LPaemdl1ZvaDmS01s6lmdnJ6\nj05EREREspWCuyIiIiIiG9YfOAT4D3A0cDjQPO79qsANQDPgBGAHYHjsvdlAQcB2F2Ab4LLYz9cD\nZwLnArsDA4H/mtkhKToOEREREalALIQQdRlERERERDKWmdUCfgc6hRBeiL1WF/gZeDiEcGURn9kP\n+AjYLISw1MwOw3vv1g0hLIqtUw1YCLQNIXwU99lHgU1CCGem+NBEREREJMtVjboAIiIiIiIZbidg\nY2BKwQshhD/M7OuCn82sBdAb2Buoy9oRcg2BGcVsd2egJvC6mcXn4t0YmJq00ouIiIhIhaXgroiI\niIhIOZhZTWAc8BrQCZiPp2UYB1Qr4aObxr62A34t9N6KJBdTRERERCogBXdFREREREr2PbAaOBBP\nxVCQlmFX4C2gKbAlcF0I4ZfY+wcU2sbK2Ncqca99hQdxdwghvJuqwouIiIhIxaXgroiIiIhICUII\nS8xsKHC3mS3Ee+beCqyJrTILD95eamYPAXvhk6vFmwkE4D9m9iqwLITwt5n1BwaaWRXgXaAO0Ar4\nK4Tw31Qfm4iIiIhkt402vIqIiIiISKV3DTAZGAtMiH2fCxBCWACcBZwCTAN6AFfFfziE8Cuek7cf\nMBcYHHv9RuAW4Fq8J+9reJqGH1N9QCIiIiKS/SyEEHUZRERERERERERERKSU1HNXRERERERERERE\nJAspuCsiIiIiIiIiIiKShRTcFREREREREREREclCCu6KiIiIiIiIiIiIZCEFd0VERERERERERESy\nkIK7IiIiIiIiIiIiIllIwV0RERERERERERGRLKTgroiIiIiIiIiIiEgWUnBXREREREREREREJAsp\nuCsiIiIiIiIiIiKShRTcFREREREREREREclCCu6KiIiIiIiIiIiIZKH/B8pHjPfVgbdgAAAAAElF\nTkSuQmCC\n", 590 | "text/plain": [ 591 | "" 592 | ] 593 | }, 594 | "metadata": {}, 595 | "output_type": "display_data" 596 | } 597 | ], 598 | "source": [ 599 | "plt.figure(num=1, figsize=(17, 6)) #размер отрисованного графика\n", 600 | "\n", 601 | "plt.title('Date')\n", 602 | "plt.xlabel('date') #подпись оси x\n", 603 | "plt.ylabel('count post per day') #подпись оси y\n", 604 | "plt.grid()\n", 605 | "plt.plot(group_by_day['owner_id'],label=str(q)) #что рисуем и в какой форме: точка и др.\n", 606 | "\n", 607 | "plt.legend()" 608 | ] 609 | }, 610 | { 611 | "cell_type": "code", 612 | "execution_count": 170, 613 | "metadata": { 614 | "collapsed": false 615 | }, 616 | "outputs": [ 617 | { 618 | "data": { 619 | "text/html": [ 620 | "
\n", 621 | "\n", 622 | " \n", 623 | " \n", 624 | " \n", 625 | " \n", 626 | " \n", 627 | " \n", 628 | " \n", 629 | " \n", 630 | " \n", 631 | " \n", 632 | " \n", 633 | " \n", 634 | " \n", 635 | " \n", 636 | " \n", 637 | " \n", 638 | " \n", 639 | " \n", 640 | " \n", 641 | " \n", 642 | " \n", 643 | " \n", 644 | " \n", 645 | " \n", 646 | " \n", 647 | " \n", 648 | " \n", 649 | " \n", 650 | " \n", 651 | " \n", 652 | " \n", 653 | " \n", 654 | " \n", 655 | " \n", 656 | " \n", 657 | " \n", 658 | " \n", 659 | " \n", 660 | " \n", 661 | " \n", 662 | " \n", 663 | " \n", 664 | " \n", 665 | " \n", 666 | " \n", 667 | " \n", 668 | " \n", 669 | " \n", 670 | " \n", 671 | " \n", 672 | " \n", 673 | " \n", 674 | " \n", 675 | " \n", 676 | " \n", 677 | " \n", 678 | " \n", 679 | " \n", 680 | " \n", 681 | " \n", 682 | " \n", 683 | " \n", 684 | " \n", 685 | " \n", 686 | " \n", 687 | " \n", 688 | " \n", 689 | " \n", 690 | " \n", 691 | " \n", 692 | " \n", 693 | " \n", 694 | " \n", 695 | " \n", 696 | " \n", 697 | " \n", 698 | " \n", 699 | " \n", 700 | " \n", 701 | " \n", 702 | " \n", 703 | " \n", 704 | " \n", 705 | " \n", 706 | " \n", 707 | " \n", 708 | " \n", 709 | " \n", 710 | " \n", 711 | " \n", 712 | " \n", 713 | " \n", 714 | " \n", 715 | " \n", 716 | " \n", 717 | " \n", 718 | " \n", 719 | " \n", 720 | " \n", 721 | " \n", 722 | " \n", 723 | " \n", 724 | " \n", 725 | " \n", 726 | " \n", 727 | " \n", 728 | " \n", 729 | " \n", 730 | " \n", 731 | " \n", 732 | " \n", 733 | " \n", 734 | " \n", 735 | " \n", 736 | " \n", 737 | " \n", 738 | " \n", 739 | " \n", 740 | " \n", 741 | " \n", 742 | " \n", 743 | " \n", 744 | " \n", 745 | " \n", 746 | " \n", 747 | " \n", 748 | " \n", 749 | " \n", 750 | " \n", 751 | " \n", 752 | " \n", 753 | " \n", 754 | " \n", 755 | " \n", 756 | " \n", 757 | " \n", 758 | "
dateowner_idpost_idlikesrepostscommentscoordinatespost_typeplatform_type
platform
android2676267626762676267626763026762676
chronicle11111111111101111
direct391739173917391739173917939173917
instagram380738073807380738073807125238073807
ipad60606060606006060
iphone49949949949949949911499499
prisma111111011
vinci5602560256025602560256021956025602
wphone4427442744274427442744272544274427
\n", 759 | "
" 760 | ], 761 | "text/plain": [ 762 | " date owner_id post_id likes reposts comments coordinates \\\n", 763 | "platform \n", 764 | "android 2676 2676 2676 2676 2676 2676 30 \n", 765 | "chronicle 11 11 11 11 11 11 0 \n", 766 | "direct 3917 3917 3917 3917 3917 3917 9 \n", 767 | "instagram 3807 3807 3807 3807 3807 3807 1252 \n", 768 | "ipad 60 60 60 60 60 60 0 \n", 769 | "iphone 499 499 499 499 499 499 11 \n", 770 | "prisma 1 1 1 1 1 1 0 \n", 771 | "vinci 5602 5602 5602 5602 5602 5602 19 \n", 772 | "wphone 4427 4427 4427 4427 4427 4427 25 \n", 773 | "\n", 774 | " post_type platform_type \n", 775 | "platform \n", 776 | "android 2676 2676 \n", 777 | "chronicle 11 11 \n", 778 | "direct 3917 3917 \n", 779 | "instagram 3807 3807 \n", 780 | "ipad 60 60 \n", 781 | "iphone 499 499 \n", 782 | "prisma 1 1 \n", 783 | "vinci 5602 5602 \n", 784 | "wphone 4427 4427 " 785 | ] 786 | }, 787 | "execution_count": 170, 788 | "metadata": {}, 789 | "output_type": "execute_result" 790 | } 791 | ], 792 | "source": [ 793 | "platform = df.groupby(df['platform']).count()\n", 794 | "platform" 795 | ] 796 | }, 797 | { 798 | "cell_type": "code", 799 | "execution_count": 171, 800 | "metadata": { 801 | "collapsed": true 802 | }, 803 | "outputs": [], 804 | "source": [ 805 | "platform_sort = platform.sort_values(['platform_type'],ascending=0)" 806 | ] 807 | }, 808 | { 809 | "cell_type": "code", 810 | "execution_count": 172, 811 | "metadata": { 812 | "collapsed": false 813 | }, 814 | "outputs": [ 815 | { 816 | "data": { 817 | "text/plain": [ 818 | "" 819 | ] 820 | }, 821 | "execution_count": 172, 822 | "metadata": {}, 823 | "output_type": "execute_result" 824 | }, 825 | { 826 | "data": { 827 | "image/png": "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\nEAsAAAAA0JkQCwAAAADQmRALAAAAANCZEAsAAAAA0JkQCwAAAADQmRALAAAAANCZEAsAAAAA0JkQ\nCwAAAADQmRALAAAAANCZEAsAAAAA0JkQCwAAAADQmRALAAAAANCZEAsAAAAA0JkQCwAAAADQmRAL\nAAAAANCZEAsAAAAA0JkQCwAAAADQmRALAAAAANCZEAsAAAAA0JkQCwAAAADQmRALAAAAANCZEAsA\nAAAA0NnEIbaqfrSqfr+q/qaqnq2qnzrOzAeq6qtV9WRVfaaqLl11/vyqurWqRlX1eFXdXVWXrJp5\nWVXdUVVHq+pIVX20qi6c/CMCAAAAAEzXWu6IvTDJnyX5D0na6pNV9b4k70nyziSXJXkiyd6q2jA2\ndnOSNyR5U5KrkrwqycdX/ak7k8wl2TnMXpXktjXsCwAAAAAwVedN+oLW2j1J7kmSqqrjjFyf5MbW\n2qeGmbcmOZzkjUnuqqqLkrw9yTWttc8NM29LcqCqLmut7auquSRXJ5lvrT00zFyX5NNV9d7W2qFJ\n9wYAAAAAmJZ1fUZsVb06ydYknz12rLX2WJIHklw5HHptVgLw+MzBJEtjM1ckOXIswg7uzcoduJev\n584AAAAAAL2t95d1bc1KLD286vjh4VySbEny1BBoTzSzNcnXx0+21p5J8s2xGQAAAACAM8J6h1gA\nAAAAAFaZ+Bmxp3AoSWXlrtfxu2K3JHlobGZDVV206q7YLcO5YzOXjP/hqjo3ycvHZo5r9+7d2bRp\n0/OOLSwsZGFhYbJPAgAAAAAwZnFxMYuLi887dvTo0dN67bqG2NbaV6rqUJKdSb6UJMOXc12e5NZh\n7MEkTw8znxhmtifZluT+Yeb+JBdX1WvGnhO7MyuR94GT7bBnz57s2LFj3T4TAAAAAEBy/Bs+9+/f\nn/n5+VO+duIQW1UXJrk0K1E0Sb6/qn44yTdba3+d5OYk76+qLyd5JMmNSR5N8slk5cu7qupjST5Y\nVUeSPJ7kliT3tdb2DTMPV9XeJB+pqmuTbEjyoSSLrbWT3hELAAAAADBr1nJH7GuT/PesfClXS/Jr\nw/HfSvL21tpNVXVBktuSXJzk80le31p7auxv7E7yTJK7k5yf5J4k7171Pm9O8uEk9yZ5dpi9fg37\nAgAAAABM1cQhtrX2uZziS75aazckueEk57+d5Lrh50Qz30qya9L9AAAAAABmzUmDKgAAAAAAL5wQ\n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\n", 828 | "text/plain": [ 829 | "" 830 | ] 831 | }, 832 | "metadata": {}, 833 | "output_type": "display_data" 834 | } 835 | ], 836 | "source": [ 837 | "plt.figure(num=1, figsize=(17, 6)) #размер отрисованного графика\n", 838 | "plt.grid()\n", 839 | "platform_sort['platform_type'].plot(kind='bar')" 840 | ] 841 | }, 842 | { 843 | "cell_type": "markdown", 844 | "metadata": {}, 845 | "source": [] 846 | } 847 | ], 848 | "metadata": { 849 | "anaconda-cloud": {}, 850 | "kernelspec": { 851 | "display_name": "Python [conda root]", 852 | "language": "python", 853 | "name": "conda-root-py" 854 | }, 855 | "language_info": { 856 | "codemirror_mode": { 857 | "name": "ipython", 858 | "version": 3 859 | }, 860 | "file_extension": ".py", 861 | "mimetype": "text/x-python", 862 | "name": "python", 863 | "nbconvert_exporter": "python", 864 | "pygments_lexer": "ipython3", 865 | "version": "3.5.2" 866 | } 867 | }, 868 | "nbformat": 4, 869 | "nbformat_minor": 1 870 | } 871 | --------------------------------------------------------------------------------