{
    "version": "https:\/\/jsonfeed.org\/version\/1.1",
    "title": "Заметки — Игорь К.: заметки с тегом аналитика",
    "_rss_description": "Блог Игоря К. о маркетинге, аналитике, фотографии и жизни...",
    "_rss_language": "ru",
    "_itunes_email": "",
    "_itunes_categories_xml": "",
    "_itunes_image": "",
    "_itunes_explicit": "",
    "home_page_url": "https:\/\/blog.fossko.ru\/tags\/analitika\/",
    "feed_url": "https:\/\/blog.fossko.ru\/tags\/analitika\/json\/",
    "icon": "https:\/\/blog.fossko.ru\/pictures\/userpic\/userpic@2x.jpg?1610628098",
    "authors": [
        {
            "name": "Игорь К.",
            "url": "https:\/\/blog.fossko.ru\/",
            "avatar": "https:\/\/blog.fossko.ru\/pictures\/userpic\/userpic@2x.jpg?1610628098"
        }
    ],
    "items": [
        {
            "id": "571",
            "url": "https:\/\/blog.fossko.ru\/all\/kak-ustroen-marketing-kliniki\/",
            "title": "Как устроен маркетинг клиники «Сова»",
            "content_html": "<p>Директор по маркетингу сети клиник «Сова» Марина Гребенникова, провела вебинар — 3,5 миллиарда выручки и 30% роста за год. Как устроен маркетинг клиник «СОВА»?<\/p>\n<div class=\"e2-text-video\">\n<iframe src=\"https:\/\/www.youtube.com\/embed\/sc0Wforyp2c?enablejsapi=1\" allow=\"autoplay\" frameborder=\"0\" allowfullscreen><\/iframe>\n<\/div>\n<p>ВК: <a href=\"https:\/\/vk.com\/video-215287702_456239037\">https:\/\/vk.com\/video-215287702_456239037<\/a><br \/>\nЮтуб: <a href=\"https:\/\/www.youtube.com\/watch?v=sc0Wforyp2c\">https:\/\/www.youtube.com\/watch?v=sc0Wforyp2c<\/a><\/p>\n<p><b>Ключевые показатели в маркетинге медицины<\/b><\/p>\n<ul>\n<li>Основной показатель — выручка по каждой клинике и юниту.<\/li>\n<li>Анализируются ежедневные и ежемесячные данные для выявления отклонений.<\/li>\n<li>Контролируются все каналы привлечения пациентов, включая лидогенераторы и личный кабинет.<\/li>\n<\/ul>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/blog.fossko.ru\/pictures\/image-24.png\" width=\"930\" height=\"280\" alt=\"\" \/>\n<div class=\"e2-text-caption\">Пример ежедневного отчета по выручки. Скриншот из вебинара <a href=\"https:\/\/www.youtube.com\/watch?v=sc0Wforyp2c\" class=\"nu\">„<u>3,5 миллиарда выручки и 30% роста за год. Как устроен маркетинг клиник «СОВА»?<\/u>“<\/a><\/div>\n<\/div>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/blog.fossko.ru\/pictures\/image-25.png\" width=\"1093\" height=\"611\" alt=\"\" \/>\n<div class=\"e2-text-caption\">Пример контроля входящих заявок, который проходит еженедельно. Скриншот из вебинара <a href=\"https:\/\/www.youtube.com\/watch?v=sc0Wforyp2c\" class=\"nu\">„<u>3,5 миллиарда выручки и 30% роста за год. Как устроен маркетинг клиник «СОВА»?<\/u>“<\/a><\/div>\n<\/div>\n<p><b>Анализ записей и отказов<\/b><\/p>\n<ul>\n<li>Отслеживаются количество звонков и записи на прием.<\/li>\n<li>Анализируются отказы по направлениям и регионам.<\/li>\n<li>Важен анализ спроса и новых запросов для улучшения коммерческой стратегии.<\/li>\n<\/ul>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/blog.fossko.ru\/pictures\/image-26.png\" width=\"1093\" height=\"614\" alt=\"\" \/>\n<div class=\"e2-text-caption\">Пример отслеживания количества звонков, контроля входящих заявок, который проходит еженедельно. Скриншот из вебинара <a href=\"https:\/\/www.youtube.com\/watch?v=sc0Wforyp2c\" class=\"nu\">„<u>3,5 миллиарда выручки и 30% роста за год. Как устроен маркетинг клиник «СОВА»?<\/u>“<\/a><\/div>\n<\/div>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/blog.fossko.ru\/pictures\/image-27.png\" width=\"1093\" height=\"615\" alt=\"\" \/>\n<div class=\"e2-text-caption\">Пример аналитики пациентов по каналам, проводится ежемесячно. Скриншот из вебинара <a href=\"https:\/\/www.youtube.com\/watch?v=sc0Wforyp2c\" class=\"nu\">„<u>3,5 миллиарда выручки и 30% роста за год. Как устроен маркетинг клиник «СОВА»?<\/u>“<\/a><\/div>\n<\/div>\n<p><b>Автоматизация аналитики<\/b><\/p>\n<ul>\n<li>Разработка автоматизированного аналитического инструмента.<\/li>\n<li>Использование различных источников данных, включая Яндекс.Метрику и Колтач.<\/li>\n<li>Важность правильного сбора и анализа данных для принятия решений.<\/li>\n<\/ul>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/blog.fossko.ru\/pictures\/image-28.png\" width=\"1093\" height=\"614\" alt=\"\" \/>\n<div class=\"e2-text-caption\">Пример разрабатываемой системы аналитики, и количество источников, которые используются в медицине. Скриншот из вебинара <a href=\"https:\/\/www.youtube.com\/watch?v=sc0Wforyp2c\" class=\"nu\">„<u>3,5 миллиарда выручки и 30% роста за год. Как устроен маркетинг клиник «СОВА»?<\/u>“<\/a><\/div>\n<\/div>\n<p><b>Использование подрядчиков и фрилансеров<\/b><\/p>\n<ul>\n<li>Предпочтение штатным специалистам, погруженным в нюансы работы.<\/li>\n<li>Подрядчики используются для SEO и тех поддержки.<\/li>\n<li>Важность тесного контакта и профессиональной оценки для достижения результатов.<\/li>\n<\/ul>\n<p><b>Анализ конкурентов<\/b><\/p>\n<ul>\n<li>Процесс анализа конкурентов требует ручного труда и времени.<\/li>\n<li>Используются данные с сайтов, агрегаторов и колл-центров.<\/li>\n<li>Важно углубляться в анализ при появлении новых конкурентов.<\/li>\n<\/ul>\n<p>Текстовая версия в блоге Ранг — <a href=\"https:\/\/rang.ai\/blog\/marketing-seti-sova\">https:\/\/rang.ai\/blog\/marketing-seti-sova<\/a><\/p>\n",
            "date_published": "2025-02-24T11:25:01+03:00",
            "date_modified": "2025-04-18T11:18:16+03:00",
            "tags": [
                "аналитика",
                "маркетинг"
            ],
            "image": "https:\/\/blog.fossko.ru\/pictures\/remote\/youtube-sc0Wforyp2c-cover.jpg",
            "_date_published_rfc2822": "Mon, 24 Feb 2025 11:25:01 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "571",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": [
                    "https:\/\/blog.fossko.ru\/pictures\/remote\/youtube-sc0Wforyp2c-cover.jpg",
                    "https:\/\/blog.fossko.ru\/pictures\/image-24.png",
                    "https:\/\/blog.fossko.ru\/pictures\/image-25.png",
                    "https:\/\/blog.fossko.ru\/pictures\/image-26.png",
                    "https:\/\/blog.fossko.ru\/pictures\/image-27.png",
                    "https:\/\/blog.fossko.ru\/pictures\/image-28.png"
                ]
            }
        },
        {
            "id": "569",
            "url": "https:\/\/blog.fossko.ru\/all\/api-ot-platformy-vc-ru\/",
            "title": "API от платформы vc.ru",
            "content_html": "<p>На ВиСи можно получить список статей определенного пользователя используя скрытый апи.<\/p>\n<div class=\"e2-text-video\">\n<iframe src=\"https:\/\/www.youtube.com\/embed\/Jc7Hp953xg8?enablejsapi=1\" allow=\"autoplay\" frameborder=\"0\" allowfullscreen><\/iframe>\n<div class=\"e2-text-caption\">Что такое скрытый апи и как его найти, рассказывает Алексей Куличевский<\/div>\n<\/div>\n<p>На виси есть скрытый апи, находящийся по адресу<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">https:\/\/api.vc.ru\/v2.8\/<\/code><\/pre><div class=\"e2-text-picture\">\n<div class=\"fotorama\" data-width=\"879\" data-ratio=\"3.0102739726027\">\n<img src=\"https:\/\/blog.fossko.ru\/pictures\/api-ot-platformy-vc-ru.png\" width=\"879\" height=\"292\" alt=\"\" \/>\n<img src=\"https:\/\/blog.fossko.ru\/pictures\/api-ot-platformy-vc-ru-1.png\" width=\"540\" height=\"191\" alt=\"\" \/>\n<\/div>\n<div class=\"e2-text-caption\">Ищется скрытый апи через консоль разработчика, в гугл хроме нажимаем ctrl+shift+С — переходим в вкладку Network<\/div>\n<\/div>\n<p>Для получения последний опубликованных статей пользователя<br \/>\nнужны следующие параметры отправляемые в гет запросе:<\/p>\n<ul>\n<li><b>markdown: false<\/b> — как отдаются статьи, на практике у меня всегда отдаются в html, не важно что стоит true или false<\/li>\n<li><b>sorting: new<\/b> — сортировка, можно использовать несколько видов: ’new’, ’hotness’, ’day’, ’week’, ’month’, ’year’, ’all’<br \/>\n<b>lastId: 1628356<\/b> — с какого последнего айдишника статьи продолжать показ, в получаемом джайсоне выводятся 12 элементов.<\/li>\n<li><b>lastSortingValue: 1730444607<\/b> — я не разобрался что это за параметр, без него работает корректно<\/li>\n<li><b>subsitesIds: 287399<\/b> — ай-ди пользователя статьи которого нам нужны<\/li>\n<\/ul>\n<p>Гет запрос отправляем на адрес<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">https:\/\/api.vc.ru\/v2.8\/timeline<\/code><\/pre><div class=\"e2-text-picture\">\n<img src=\"https:\/\/blog.fossko.ru\/pictures\/api-ot-platformy-vc-ru-3.png\" width=\"909\" height=\"516\" alt=\"\" \/>\n<div class=\"e2-text-caption\">Результат выполнения гет запроса — нам нужны поля id — айди статьи, title — название статьи, дата и дата модификации — дата время в виде временной метки UNIX (число секунд, прошедших с 1 января 1970 года)<\/div>\n<\/div>\n<p>Код на питоне, для получения последних 12 статей опубликованных пользователем<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">import requests\nimport json\nimport datetime\n\nurl=&quot;https:\/\/api.vc.ru&quot;\nv_api=&quot;\/v2.8\/&quot;\nmetod=&quot;timeline&quot;\nall_url=url+v_api+metod\n\nmarkdown=&quot;true&quot;\nsubsitesIds=&quot;287399&quot;\nsorting= &quot;new&quot;\n\nparams = {&quot;markdown&quot;: markdown,\n          &quot;sorting&quot;: sorting, \n          &quot;subsitesIds&quot;: subsitesIds}\n\nresponse=requests.get(all_url, params=params)\n\ndata = response.json()\nitems = data[&#039;result&#039;][&#039;items&#039;]\nfor index, item in enumerate(items):\n        item_data = item[&#039;data&#039;]        \n        print(f&quot;Элемент {index + 1}:&quot;)\n        print(f&quot;ID: {item_data[&#039;id&#039;]}&quot;)\n        print(f&quot;url: https:\/\/vc.ru\/{item_data[&#039;id&#039;]}&quot;)\n        print(f&quot;Title: {item_data[&#039;title&#039;]}&quot;)\n        print(f&quot;дата публикации: {datetime.datetime.fromtimestamp(item_data[&#039;date&#039;])}&quot;)\n        print(f&quot;дата модификации: {datetime.datetime.fromtimestamp(item_data[&#039;dateModified&#039;])}&quot;)  \n        print()<\/code><\/pre><div class=\"e2-text-picture\">\n<img src=\"https:\/\/blog.fossko.ru\/pictures\/api-ot-platformy-vc-ru-2.png\" width=\"526\" height=\"439\" alt=\"\" \/>\n<div class=\"e2-text-caption\">Результат выполнения, если нам нужно собрать все страницы, то необходимо в параметрах передавать lastId — последний в списке айди статьи, тогда следующие будут начиная с этого ай-ди.<\/div>\n<\/div>\n<p><a href=\"https:\/\/github.com\/alexpervushin\/vcru-api\/blob\/main\/vcru_api\/sync_wrapper.py\">У Александра Первушина на гитхабе проект vcru-api<\/a>, где опубликовано описание других методов, с помощью которых можно получить другие сведения, например комментарии к статье — метод comments, текст статьи — метод content<\/p>\n<p>Нашлась документация по API vc.ru, dtf.ru<\/p>\n<ul>\n<li><a href=\"https:\/\/komitet.notion.site\/API-TJ-vc-ru-DTF-3f5162d2cb184f6381ff82c085bbb3c0\">API основы ВиСи<\/a> — докумет в ноушене, может быть полезен<\/li>\n<li><a href=\"https:\/\/cmtt-ru.github.io\/osnova-api\/v1\/swagger.html#\/\">Описание версии апи 1.9<\/a> —  Основа api api.yaml, общая страница на гитхабе<\/li>\n<li><a href=\"https:\/\/cmtt-ru.github.io\/osnova-api\/swaggerui\/index.html?urls.primaryName=v2.31\">Описание версии апи 2.31<\/a><\/li>\n<\/ul>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/blog.fossko.ru\/pictures\/api-ot-platformy-vc-ru-4.png\" width=\"666\" height=\"263\" alt=\"\" \/>\n<div class=\"e2-text-caption\">Не забывайте выбрать какой апи вы будете смотреть, в списке есть версия 2.31, на ноябрь 2024 года, используется версия 2.8<\/div>\n<\/div>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/blog.fossko.ru\/pictures\/api-ot-platformy-vc-ru-5.png\" width=\"797\" height=\"931\" alt=\"\" \/>\n<div class=\"e2-text-caption\">Дополнительные параметры которые можно посмотреть в методе timeline, оказывается можно передать несколько пользователей через запятую<\/div>\n<\/div>\n<h2>Анализ пользователей vc.ru<\/h2>\n<p>На основании полученных данных можно провести анализ публикаций пользователей.<br \/>\nНапример, <a href=\"https:\/\/vc.ru\/u\/283507-tanya-bobrova\">пользователь Татьяна Боброва<\/a> — с 15 апреля 2019 года по 22 ноября 2024 года опубликовала 5682 записи.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/blog.fossko.ru\/pictures\/api-ot-platformy-vc-ru-6.png\" width=\"993\" height=\"710\" alt=\"\" \/>\n<div class=\"e2-text-caption\">Тепловая карта количества постов по дням недели и часам публикации <a href=\"https:\/\/vc.ru\/u\/283507-tanya-bobrova\">пользователь Татьяна Боброва<\/a><\/div>\n<\/div>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/blog.fossko.ru\/pictures\/api-ot-platformy-vc-ru-7.png\" width=\"1001\" height=\"710\" alt=\"\" \/>\n<div class=\"e2-text-caption\">Тепловая карта общего количества реакций по дням недели и часам публикации <a href=\"https:\/\/vc.ru\/u\/283507-tanya-bobrova\">пользователь Татьяна Боброва<\/a><\/div>\n<\/div>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/blog.fossko.ru\/pictures\/api-ot-platformy-vc-ru-8.png\" width=\"1010\" height=\"710\" alt=\"\" \/>\n<div class=\"e2-text-caption\">Тепловая карта общего количества комментариев по дням недели и часам публикации <a href=\"https:\/\/vc.ru\/u\/283507-tanya-bobrova\">пользователь Татьяна Боброва<\/a><\/div>\n<\/div>\n",
            "date_published": "2024-11-18T23:27:05+03:00",
            "date_modified": "2024-12-03T16:20:22+03:00",
            "tags": [
                "аналитика",
                "питон",
                "портфолио"
            ],
            "image": "https:\/\/blog.fossko.ru\/pictures\/remote\/youtube-Jc7Hp953xg8-cover.jpg",
            "_date_published_rfc2822": "Mon, 18 Nov 2024 23:27:05 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "569",
            "_e2_data": {
                "is_favourite": true,
                "links_required": [
                    "highlight\/highlight.js",
                    "highlight\/highlight.css",
                    "jquery\/jquery.js",
                    "fotorama\/fotorama.css",
                    "fotorama\/fotorama.js"
                ],
                "og_images": [
                    "https:\/\/blog.fossko.ru\/pictures\/remote\/youtube-Jc7Hp953xg8-cover.jpg",
                    "https:\/\/blog.fossko.ru\/pictures\/api-ot-platformy-vc-ru.png",
                    "https:\/\/blog.fossko.ru\/pictures\/api-ot-platformy-vc-ru-1.png",
                    "https:\/\/blog.fossko.ru\/pictures\/api-ot-platformy-vc-ru-3.png",
                    "https:\/\/blog.fossko.ru\/pictures\/api-ot-platformy-vc-ru-2.png",
                    "https:\/\/blog.fossko.ru\/pictures\/api-ot-platformy-vc-ru-4.png",
                    "https:\/\/blog.fossko.ru\/pictures\/api-ot-platformy-vc-ru-5.png",
                    "https:\/\/blog.fossko.ru\/pictures\/api-ot-platformy-vc-ru-6.png",
                    "https:\/\/blog.fossko.ru\/pictures\/api-ot-platformy-vc-ru-7.png",
                    "https:\/\/blog.fossko.ru\/pictures\/api-ot-platformy-vc-ru-8.png"
                ]
            }
        },
        {
            "id": "555",
            "url": "https:\/\/blog.fossko.ru\/all\/kogortny-analiz-v-tableau\/",
            "title": "Когортный анализ в Tableau",
            "content_html": "<p>При анализе данных о бизнесе требуется понять общее в поведении клиентов. Для этого мы объединяем их в группы по определенному признаку, например, времени регистрации — это называется когортой клиентов.<\/p>\n<p>Коготный анализ помогает в принятии решения «стоит ли продолжать инвестировать в рекламу?»<\/p>\n<ul>\n<li>Смотрим на динамику потраченных денег — это даст представление о окупаемости вложенных средств.<\/li>\n<li>Смотрим как окупается реклама — если реклама окупается быстрее, это позволяет постоянно не привлекать новых клиентов.<\/li>\n<\/ul>\n<p>Вебинар Анастасии Кузнецовой и Андрона Алексаняна — «Собираем дашборд с нуля. Аналитика данных. Tableau. Когортный анализ»<\/p>\n<p>Очень здорово Анастасия показывает принцип сборки отчета в Bi системе Табло. Отчет можно попробовать повторить в других системах.<\/p>\n<div class=\"e2-text-video\">\n<iframe src=\"https:\/\/www.youtube.com\/embed\/XxiUiWdkNng?enablejsapi=1\" allow=\"autoplay\" frameborder=\"0\" allowfullscreen><\/iframe>\n<p>\n00:02:37 Как понять на основе данных — окупаемость инвестиций в рекламу<br \/>\n00:05:33 Детализация дэшборда по источникам и когортам<br \/>\n00:09:43 Как использовать заготовки блоков для упрощения верстки нового дэшборда<br \/>\n00:15:39 Верстка и использование готовых блоков — для экономии времени и ресурсов<br \/>\n00:19:19 Анализ данных и когортный анализ<br \/>\n00:22:30 Почему для разных типов бизнеса могут быть разные способы формирования когорт и атрибуции<br \/>\n00:29:09 Способы визуализации данных: таблицы и линейные графики. Добавление дополнительных столбцов в таблицу, например «сколько потрачено» для каждой когорты.<br \/>\n00:31:49 Как когортный анализ может помочь в принятии решений стоит ли продолжать рекламу<br \/>\n00:39:18 Почему поверхностные выводы могут привести к ошибочным решениям<br \/>\n00:58:17 Коготный анализ для определения приоритетной аудитории рекламы<br \/>\n01:09:27 Окупаемость рекламной кампании<br \/>\n<\/p>\n<\/div>\n<p>Дашборд Анастасии Кузнецовой  — <a href=\"https:\/\/public.tableau.com\/app\/profile\/nastengraph\/viz\/MarketingCohortsAnalysis\/MarketingCohorts\">Когортный анализ для маркетинга<\/a><\/p>\n<div class='tableauPlaceholder' id='viz1716747999857' style='position: relative'><p><noscript><a href='#'><img alt=' ' src='https:&#47;&#47;public.tableau.com&#47;static&#47;images&#47;Ma&#47;MarketingCohortsAnalysis&#47;MarketingCohorts&#47;1_rss.png' style='border: none' \/><\/a><\/noscript><\/p>\n<object class='tableauViz'  style='display:none;'><param name='host_url' value='https%3A%2F%2Fpublic.tableau.com%2F' \/> <param name='embed_code_version' value='3' \/> <param name='site_root' value='' \/><param name='name' value='MarketingCohortsAnalysis&#47;MarketingCohorts' \/><param name='tabs' value='no' \/><param name='toolbar' value='yes' \/><param name='static_image' value='https:&#47;&#47;public.tableau.com&#47;static&#47;images&#47;Ma&#47;MarketingCohortsAnalysis&#47;MarketingCohorts&#47;1.png' \/> <param name='animate_transition' value='yes' \/><param name='display_static_image' value='yes' \/><param name='display_spinner' value='yes' \/><param name='display_overlay' value='yes' \/><param name='display_count' value='yes' \/><param name='language' value='en-US' \/><\/object>\n<\/div><script type='text\/javascript'>                    var divElement = document.getElementById('viz1716747999857');                    var vizElement = divElement.getElementsByTagName('object')[0];                    vizElement.style.width='1400px';vizElement.style.height='1427px';                    var scriptElement = document.createElement('script');                    scriptElement.src = 'https:\/\/public.tableau.com\/javascripts\/api\/viz_v1.js';                    vizElement.parentNode.insertBefore(scriptElement, vizElement);                <\/script>\n<p><a href=\"https:\/\/docs.google.com\/document\/d\/1aKviTKP9UdLMAedvnF0OxA1mdeEMn0LBYqZsnWUirmg\">Большой гайд по когортному анализу<\/a> от Андрона Алексаняна, описывает зачем нужен когортный анализ и как провести его на SQL и Python.<\/p>\n<p><a href=\"https:\/\/colab.research.google.com\/drive\/1Ecl7L7_urcFlJG0Hz9-BGNcF_L_t8dfT?usp=sharing\">Блокнот с колаба с кодом питона для проведения когортного анализа<\/a> — используется библиотека pandas.<\/p>\n",
            "date_published": "2024-04-04T21:40:01+03:00",
            "date_modified": "2024-05-26T21:26:59+03:00",
            "tags": [
                "аналитика",
                "конспект"
            ],
            "image": "https:\/\/blog.fossko.ru\/pictures\/remote\/youtube-XxiUiWdkNng-cover.jpg",
            "_date_published_rfc2822": "Thu, 04 Apr 2024 21:40:01 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "555",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [
                    "jquery\/jquery.js",
                    "media-seek\/media-seek.js"
                ],
                "og_images": [
                    "https:\/\/blog.fossko.ru\/pictures\/remote\/youtube-XxiUiWdkNng-cover.jpg"
                ]
            }
        },
        {
            "id": "554",
            "url": "https:\/\/blog.fossko.ru\/all\/tehnicheskaya-chast-skvoznoy-analitiki\/",
            "title": "Техническая часть сквозной аналитики",
            "content_html": "<p>Сквозная аналитика позволяет понять, какой канал рекламы приводит реальных клиентов и прекратить тратить на неэффективные каналы.<br \/>\nПавел Гаврилов рассказывает как организовать сквозную аналитику. Много информации про организацию и объединение данных<\/p>\n<h2>Павел Гаврилов, вебинар «Сквозная аналитика „для взрослых“»<\/h2>\n<div class=\"e2-text-video\">\n<iframe src=\"https:\/\/www.youtube.com\/embed\/MjKYuSVqQz0?enablejsapi=1\" allow=\"autoplay\" frameborder=\"0\" allowfullscreen><\/iframe>\n<p>\n00:03:56 Примеры сквозной аналитики<br \/>\n00:08:19 Создание справочника источников и правил привязок<br \/>\n00:12:37 Привязка сессий и сущностей к источникам<br \/>\n00:15:23 Привязка данных<br \/>\n00:19:09 Атрибуция данных<br \/>\n00:26:11 Рекомендации по атрибуции<br \/>\n00:41:35 Привязка контактов к заказам<br \/>\n00:43:47 Схема работы с данными<br \/>\n<\/p>\n<\/div>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/blog.fossko.ru\/pictures\/tehnicheskaya-chast-skvoznoy-analitiki-1.jpg\" width=\"1031\" height=\"1067\" alt=\"\" \/>\n<div class=\"e2-text-caption\">Все данные сходятся в базу данных на SQL, так данные хранятся у нас. Мы сами решаем какие манипуляции производить с данными<\/div>\n<\/div>\n<h2>Виды атрибуции трафика<\/h2>\n<p>Как мы можем считать источники клиентов, каждая организация решает для себя.<br \/>\nАтрибуция позволяет видеть влияние различных источников на формирование заказов и принимать более обоснованные решения.<\/p>\n<div class=\"e2-text-picture\">\n<div class=\"fotorama\" data-width=\"937\" data-ratio=\"3.19795221843\">\n<img src=\"https:\/\/blog.fossko.ru\/pictures\/tehnicheskaya-chast-skvoznoy-analitiki.png\" width=\"937\" height=\"293\" alt=\"\" \/>\n<img src=\"https:\/\/blog.fossko.ru\/pictures\/tehnicheskaya-chast-skvoznoy-analitiki-1.png\" width=\"906\" height=\"247\" alt=\"\" \/>\n<\/div>\n<div class=\"e2-text-caption\">Первый или последний клик — учитывается во всей цепочке кликов, только первый или последний источник захода на сайт<\/div>\n<\/div>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/blog.fossko.ru\/pictures\/tehnicheskaya-chast-skvoznoy-analitiki-2.png\" width=\"914\" height=\"281\" alt=\"\" \/>\n<div class=\"e2-text-caption\">Последний рекламный клик — учитывается только последний клик по рекламе<\/div>\n<\/div>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/blog.fossko.ru\/pictures\/tehnicheskaya-chast-skvoznoy-analitiki-3.png\" width=\"907\" height=\"303\" alt=\"\" \/>\n<div class=\"e2-text-caption\">Последний не рекламный источник — учитывается не рекламный клик.<\/div>\n<\/div>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/blog.fossko.ru\/pictures\/tehnicheskaya-chast-skvoznoy-analitiki-4.png\" width=\"908\" height=\"340\" alt=\"\" \/>\n<div class=\"e2-text-caption\">Учитываются все источники в определенной пропорции, может учитываться лишь часть источников<\/div>\n<\/div>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/blog.fossko.ru\/pictures\/tehnicheskaya-chast-skvoznoy-analitiki-5.png\" width=\"507\" height=\"606\" alt=\"\" \/>\n<div class=\"e2-text-caption\">Пример организации связей в PowerBi<\/div>\n<\/div>\n<p><a href=\"https:\/\/miro.com\/app\/board\/uXjVNgnXeAw=\/?share_link_id=935072029928\">Схема миро с семинара<\/a><\/p>\n<h2>Результат сквозной аналитики<\/h2>\n<div class=\"e2-text-picture\">\n<div class=\"fotorama\" data-width=\"1885\" data-ratio=\"1.9373072970195\">\n<img src=\"https:\/\/blog.fossko.ru\/pictures\/tehnicheskaya-chast-skvoznoy-analitiki-7.png\" width=\"1885\" height=\"973\" alt=\"\" \/>\n<img src=\"https:\/\/blog.fossko.ru\/pictures\/tehnicheskaya-chast-skvoznoy-analitiki-6.png\" width=\"1684\" height=\"950\" alt=\"\" \/>\n<\/div>\n<div class=\"e2-text-caption\">В результате сквозной аналитики могут получится интерактивные дэшборды, на основании которых принимаются решения<\/div>\n<\/div>\n<iframe width=\"100%\" height=\"900\" src=\"https:\/\/app.powerbi.com\/view?r=eyJrIjoiY2RmNzI5MWYtYmE1Yi00ZjBiLWFiZjctNjVmMzdmNzZmZDUwIiwidCI6IjlkMDc3YWE4LTQ4MzYtNDVmNC05NDk2LTkxMzIyZmZmODgwOCIsImMiOjZ9\" frameborder=\"0\" allowfullscreen=\"true\"><\/iframe>\n<p><a href=\"https:\/\/elly.pw\/pbi-demo\">Интерактивная демонстрационная версия Elly на вымышленных данных.<\/a> Листы можно переключать<\/p>\n",
            "date_published": "2024-03-23T12:43:24+03:00",
            "date_modified": "2024-03-23T12:44:27+03:00",
            "tags": [
                "аналитика",
                "конспект"
            ],
            "image": "https:\/\/blog.fossko.ru\/pictures\/remote\/youtube-MjKYuSVqQz0-cover.jpg",
            "_date_published_rfc2822": "Sat, 23 Mar 2024 12:43:24 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "554",
            "_e2_data": {
                "is_favourite": true,
                "links_required": [
                    "jquery\/jquery.js",
                    "media-seek\/media-seek.js",
                    "fotorama\/fotorama.css",
                    "fotorama\/fotorama.js"
                ],
                "og_images": [
                    "https:\/\/blog.fossko.ru\/pictures\/remote\/youtube-MjKYuSVqQz0-cover.jpg",
                    "https:\/\/blog.fossko.ru\/pictures\/tehnicheskaya-chast-skvoznoy-analitiki-1.jpg",
                    "https:\/\/blog.fossko.ru\/pictures\/tehnicheskaya-chast-skvoznoy-analitiki.png",
                    "https:\/\/blog.fossko.ru\/pictures\/tehnicheskaya-chast-skvoznoy-analitiki-1.png",
                    "https:\/\/blog.fossko.ru\/pictures\/tehnicheskaya-chast-skvoznoy-analitiki-2.png",
                    "https:\/\/blog.fossko.ru\/pictures\/tehnicheskaya-chast-skvoznoy-analitiki-3.png",
                    "https:\/\/blog.fossko.ru\/pictures\/tehnicheskaya-chast-skvoznoy-analitiki-4.png",
                    "https:\/\/blog.fossko.ru\/pictures\/tehnicheskaya-chast-skvoznoy-analitiki-5.png",
                    "https:\/\/blog.fossko.ru\/pictures\/tehnicheskaya-chast-skvoznoy-analitiki-7.png",
                    "https:\/\/blog.fossko.ru\/pictures\/tehnicheskaya-chast-skvoznoy-analitiki-6.png"
                ]
            }
        },
        {
            "id": "547",
            "url": "https:\/\/blog.fossko.ru\/all\/kurs-datasaens-na-kolenke-o-rabote-v-google-tablicah\/",
            "title": "Курс «Датасаенс на коленке» — о работе в Google-таблицах",
            "content_html": "<p>В 2022 году проходил курс Алексея Куличевского <a href=\"https:\/\/sheets.smysl.io\/\">«Датасаенс на коленке» — о работе в Google-таблицах<\/a>: учимся считать метрики, делать сквозную аналитику и когортный анализ, составлять интерактивные дешборды, моделировать юнит-экономику.<\/p>\n<p>После прохождения курса, я написал Алексею:<\/p>\n<p class=\"loud\">Это было очень интересно и полезно.<br>В блоке про когорты, понимаешь что от того как посчитаешь зависит результат. Причём отклонение в небольшую сторону порой дает противоположный результат.<br>Блок про дешборды один из самых интересных, после него понимаешь как устроены связи в таблицах, что из чего можно получить. <br>Самый главный навык, который тренируешь на курсе — умение гуглить. Разбиваешь на маленькие части и гуглишь.<\/p>\n<p>Алексей выложил видеокурс в свободный доступ на ютубе — 29 уроков.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/blog.fossko.ru\/pictures\/kurs-datasaens-na-kolenke-o-rabote-v-google-tablicah.png\" width=\"1302\" height=\"851\" alt=\"\" \/>\n<div class=\"e2-text-caption\"><a href=\"https:\/\/www.youtube.com\/playlist?list=PL2PN33KbuWfwAjsZk27fASuJlqZdMqIMZ\">Бесплатный курс о работе в Google-таблицах — Ютуб плейлист<\/a><\/div>\n<\/div>\n<h2>Содержание курса<\/h2>\n<p><a href=\"https:\/\/www.youtube.com\/watch?v=NwQRORQSocI\">Урок 1. Google Sheets. Курс для маркетологов и продактов<\/a><br \/>\n<a href=\"https:\/\/www.youtube.com\/watch?v=PYwJEKAuyJg\">Урок 2. Типы данных, работа с числами в Google Sheets<\/a><br \/>\n<a href=\"https:\/\/www.youtube.com\/watch?v=LIq7dZCYpEQ\">Урок 3. Адресация ячеек в Google Sheets<\/a><br \/>\n<a href=\"https:\/\/www.youtube.com\/watch?v=v-Izd-X0KDM\">Урок 4. Работа с текстом в Google Sheets<\/a><br \/>\n<a href=\"https:\/\/www.youtube.com\/watch?v=rOWqwZjR_ZQ\">Урок 5. Работа с логическими данными в Google Sheets<\/a><br \/>\n<a href=\"https:\/\/www.youtube.com\/watch?v=sma2JsywTjY\">Урок 6. Работа с датами в Google Sheets<\/a><br \/>\n<a href=\"https:\/\/www.youtube.com\/watch?v=n9mm1-Cnz10\">Урок 7. Сводные таблицы в Google Sheets<\/a><br \/>\n<a href=\"https:\/\/www.youtube.com\/watch?v=H6_lSYsdcpY\">Урок 8. Сквозная аналитика в Google Sheets, принцип<\/a><br \/>\n<a href=\"https:\/\/www.youtube.com\/watch?v=78Btb1TbNCQ\">Урок 9. Сквозная аналитика в Google Sheets, практика<\/a><br \/>\n<a href=\"https:\/\/www.youtube.com\/watch?v=1VTHDO6aa80\">Урок 10. Когортный анализ в Google Sheets, теория<\/a><br \/>\n<a href=\"https:\/\/www.youtube.com\/watch?v=bWsrwjbtZBQ\">Урок 11. Когортный анализ в Google Sheets, практика<\/a><br \/>\n<a href=\"https:\/\/www.youtube.com\/watch?v=HoG_otN82kk\">Урок 12. Когортный анализ в Google Sheets, применение в маркетинге<\/a><br \/>\n<a href=\"https:\/\/www.youtube.com\/watch?v=BIaJ1B4J9zo\">Урок 14. Юнит-экономика в Google Sheets, теория<\/a><br \/>\n<a href=\"https:\/\/www.youtube.com\/watch?v=AosuhzlLuCQ\">Урок 13. Когортный анализ в Google Sheets. Применение в других областях<\/a><br \/>\n<a href=\"https:\/\/www.youtube.com\/watch?v=yEH4u7y9kJ0\">Урок 15. Юнит-экономика в Google Sheets, практика<\/a><br \/>\n<a href=\"https:\/\/www.youtube.com\/watch?v=okRaSQeVCEw\">Урок 16. Моделирование юнит-экономики, часть 1<\/a><br \/>\n<a href=\"https:\/\/www.youtube.com\/watch?v=ny5S-sl1Okc\">Урок 17. Моделирование юнит-экономики, часть 2<\/a><br \/>\n<a href=\"https:\/\/www.youtube.com\/watch?v=Gtkz1b6MvUw\">Урок 18. Создание дешбордов. Принцип и алгоритм<\/a><br \/>\n<a href=\"https:\/\/www.youtube.com\/watch?v=kLglpTPGaTY\">Урок 19. Дизайн дешбордов в Google Sheets<\/a><br \/>\n<a href=\"https:\/\/www.youtube.com\/watch?v=4e33Oc3QmpA\">Урок 20. Архитектура дешборда в Google Sheets<\/a><br \/>\n<a href=\"https:\/\/www.youtube.com\/watch?v=0F773DsQeJ8\">Урок 21. Слой представления | Дешборды в Google Sheets<\/a><br \/>\n<a href=\"https:\/\/www.youtube.com\/watch?v=2jpgxo9an9c\">Урок 22. План-факт | Дешборды в Google Sheets<\/a><br \/>\n<a href=\"https:\/\/www.youtube.com\/watch?v=ADnPhfM28Qw\">Урок 23. Макросы<\/a><br \/>\n<a href=\"https:\/\/www.youtube.com\/watch?v=tDtKKEklzBs\">Урок 24. Создаем собственные формулы с помощью Apps Script <\/a><br \/>\n<a href=\"https:\/\/www.youtube.com\/watch?v=ms87u4aaid4\">Урок 25. Обрабатываем массивы данных с помощью Apps Script<\/a><br \/>\n<a href=\"https:\/\/www.youtube.com\/watch?v=CGi-8QiLN-I\">Урок 26. Создаем собственные меню с помощью Apps Script<\/a><br \/>\n<a href=\"https:\/\/www.youtube.com\/watch?v=Zwca3cjBRy8\">Урок 27. Бизнес-метрики<\/a><br \/>\n<a href=\"https:\/\/www.youtube.com\/watch?v=prB-FS0wffE\">Урок 28. Путь пользователя, конверсии и воронки<\/a><br \/>\n<a href=\"https:\/\/www.youtube.com\/watch?v=gungYkKqSjM\">Урок 29. Как понять, какие метрики измерять | Снижение уровня абстракции <\/a><\/p>\n<p>У курса есть платная версия, в которой, помимо лекций еще есть десятки заданий и чат для их обсуждения.<br \/>\n<a href=\"https:\/\/sheets.smysl.io\">Платная версия курса<\/a><\/p>\n",
            "date_published": "2024-01-25T15:28:12+03:00",
            "date_modified": "2024-02-05T09:19:46+03:00",
            "tags": [
                "аналитика",
                "курсы",
                "таблицы",
                "эксель"
            ],
            "image": "https:\/\/blog.fossko.ru\/pictures\/kurs-datasaens-na-kolenke-o-rabote-v-google-tablicah.png",
            "_date_published_rfc2822": "Thu, 25 Jan 2024 15:28:12 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "547",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": [
                    "https:\/\/blog.fossko.ru\/pictures\/kurs-datasaens-na-kolenke-o-rabote-v-google-tablicah.png"
                ]
            }
        },
        {
            "id": "513",
            "url": "https:\/\/blog.fossko.ru\/all\/postroenie-plan-fakta-narastayuschim-itogom-v-gugl-tablicah\/",
            "title": "Построение план-факта нарастающим итогом в гугл таблицах",
            "content_html": "<p>Есть таблица у которой в каждой строке транзации, построим план-факт нарастающим итогом.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/blog.fossko.ru\/pictures\/image-16.png\" width=\"237\" height=\"393\" alt=\"\" \/>\n<div class=\"e2-text-caption\">Исходная таблица: Дата совершения транзакции, вид транзакции, сумма транзакции<\/div>\n<\/div>\n<p>Добавим столбец который будет считать выручку, если возврат умножаем на -1<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">=ArrayFormula(IF(B2:B=&quot;возврат&quot;;C2:C*-1;C2:C))<\/code><\/pre><div class=\"e2-text-picture\">\n<img src=\"https:\/\/blog.fossko.ru\/pictures\/postroenie-plan-fakta-narastayuschim-itogom-v-gugl-tablicah.png\" width=\"316\" height=\"496\" alt=\"\" \/>\n<div class=\"e2-text-caption\">Получаем столбец выручка, можем производить операции сложения.<\/div>\n<\/div>\n<p>На какую дату строить отчет, в нашем случае это вчерашний вечер<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">=TODAY()-1<\/code><\/pre><p>Первый день месяца<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">=EOMONTH(B2;-1)+1<\/code><\/pre><p>Последний день месяца<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">=EOMONTH(B2;0)<\/code><\/pre><p>Количество дней в месяце<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">=DATEDIF(B3;B4+1;&quot;D&quot;)<\/code><\/pre><p>План в день = план в месяц \/ количество дней в месяце<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/blog.fossko.ru\/pictures\/postroenie-plan-fakta-narastayuschim-itogom-v-gugl-tablicah-1.png\" width=\"345\" height=\"152\" alt=\"\" \/>\n<div class=\"e2-text-caption\">Получившиеся ячейки, данные в оранжевых ячейках можно править<\/div>\n<\/div>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/blog.fossko.ru\/pictures\/postroenie-plan-fakta-narastayuschim-itogom-v-gugl-tablicah-2.png\" width=\"471\" height=\"719\" alt=\"\" \/>\n<div class=\"e2-text-caption\">При помощи формул сложения и дат строим таблицу план-факт нарастающим итогом до текущей даты<\/div>\n<\/div>\n<p>Формула следующего дня<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">=IF(AND(F31+1&lt;=$B$2;F31&lt;&gt;&quot;&quot;);F31+1;&quot;&quot;)<\/code><\/pre><p>Формула проверяет выполнение двух условий с помощью функции AND():<\/p>\n<ul>\n<li>Увеличенное на 1 значение ячейки F31 не должно превышать или быть равным значению, указанному в ячейке B2. Эта ячейка содержит дату отчета.<\/li>\n<li>Сама ячейка F31 не должна быть пустой.<br \/>\nЕсли оба эти условия выполняются, то формула возвращает значение ячейки F31, увеличенное на 1. Если же одно из условий не выполняется, то формула возвращает пустую строку.<\/li>\n<\/ul>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/blog.fossko.ru\/pictures\/postroenie-plan-fakta-narastayuschim-itogom-v-gugl-tablicah-3.png\" width=\"337\" height=\"96\" alt=\"\" \/>\n<div class=\"e2-text-caption\">Вычисляем план, факт и процент выполнения плана на сегодня<\/div>\n<\/div>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/blog.fossko.ru\/pictures\/postroenie-plan-fakta-narastayuschim-itogom-v-gugl-tablicah-4.png\" width=\"925\" height=\"461\" alt=\"\" \/>\n<div class=\"e2-text-caption\">Строим график сравнения плана и факта нарастающим итогом<\/div>\n<\/div>\n<p>Данные в таблице сгенерированы и обновляются при изменении.<\/p>\n<p>При генерации использован следующий алгоритм:<br \/>\nДаты случайным образом генерируются от текущей даты три месяца назад<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">=RANDBETWEEN(EOMONTH(TODAY();-3);TODAY())<\/code><\/pre><p>Вид транзакции формируется случайно: оплата или возврат<br \/>\nСумма возврата между 100—500 ₽<br \/>\nСумма оплаты между 100—3000 ₽<\/p>\n<p><a href=\"https:\/\/docs.google.com\/spreadsheets\/d\/13AvcG6BbXT0vIEoiEtmCa1XIuNO9UyRVMQ-ITO9NtPU\/edit#gid=0\">Итоговая таблица план-факта выручки<\/a><\/p>\n",
            "date_published": "2023-05-31T15:56:30+03:00",
            "date_modified": "2023-05-31T15:42:15+03:00",
            "tags": [
                "аналитика",
                "портфолио",
                "таблицы",
                "эксель"
            ],
            "image": "https:\/\/blog.fossko.ru\/pictures\/image-16.png",
            "_date_published_rfc2822": "Wed, 31 May 2023 15:56:30 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "513",
            "_e2_data": {
                "is_favourite": true,
                "links_required": [
                    "highlight\/highlight.js",
                    "highlight\/highlight.css"
                ],
                "og_images": [
                    "https:\/\/blog.fossko.ru\/pictures\/image-16.png",
                    "https:\/\/blog.fossko.ru\/pictures\/postroenie-plan-fakta-narastayuschim-itogom-v-gugl-tablicah.png",
                    "https:\/\/blog.fossko.ru\/pictures\/postroenie-plan-fakta-narastayuschim-itogom-v-gugl-tablicah-1.png",
                    "https:\/\/blog.fossko.ru\/pictures\/postroenie-plan-fakta-narastayuschim-itogom-v-gugl-tablicah-2.png",
                    "https:\/\/blog.fossko.ru\/pictures\/postroenie-plan-fakta-narastayuschim-itogom-v-gugl-tablicah-3.png",
                    "https:\/\/blog.fossko.ru\/pictures\/postroenie-plan-fakta-narastayuschim-itogom-v-gugl-tablicah-4.png"
                ]
            }
        },
        {
            "id": "454",
            "url": "https:\/\/blog.fossko.ru\/all\/skolko-nuzhno-zarabatyvat-v-chas-chtoby-poluchat-na-ruki-100-000\/",
            "title": "Сколько нужно зарабатывать в час, чтобы получать на руки 100 000 ₽?",
            "content_html": "<p>Есть предприниматель, у которого организация с 6% налога на прибыль.<br \/>\nРаботает один, сотрудников нет.<\/p>\n<p>На руки хочет получать — 100 000 ₽<br \/>\nтогда зарплата до налогов будет — 114 934 ₽<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">зарплата до налогов = зарплата на руки \/ (100% – подоходный налог)\n\nзарплата до налогов = 100 000 ₽ \/ (100% – 13%) = 114 934 ₽<\/code><\/pre><p>Еще есть оплата в фонды: пенсионный фонд, социального страхования, медицинского страхования. Эти деньги работник не видит, но работодатель их платит, в среднем это около 35%. <a href=\"https:\/\/kontur.ru\/articles\/4845\">Для каждой организации и сотрудника разные отчисления<\/a><\/p>\n<p>Тогда сумма которую работодатель заплатит за сотрудника будет — 155 172 ₽<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">сумма оплаты в фонды= зарплата до налогов × процент оплаты в фонды\n\nсумма оплаты в фонды= 114 934 ₽ × 35% = 40 230 ₽\n\nзарплата для работодателя  = зарплата до налогов + сумма оплаты в фонды\n\nзарплата для работодателя  = 114 934 ₽ + 40 230 ₽ = 155 172 ₽<\/code><\/pre><p>Еще есть различные накладные расходы организации: канцтовары, отправка заказных писем, банк-клиент, эцп и другие<br \/>\nПусть накладные расходы составляют в среднем 10 000 ₽<\/p>\n<p>Тогда организация должна потратить на сотрудника и накладные расходы — 165 172 ₽<\/p>\n<p>У нас есть еще налог на прибыль — 6%<br \/>\nСчитаем прибыль, с которой мы уплатим налог и получим 165 172 ₽<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">Прибыль до налогов = траты на сотрудника и накладные расходы \/ (100% – налог на прибыль)\n\nПрибыль до налогов = 165 172 ₽ \/ (100% – 6%) = 175 715 ₽<\/code><\/pre><p>Получается чтобы выплатить зарплату 100 000 ₽, организация должна заработать 175 172 ₽<\/p>\n<p>Давайте посчитаем сколько нужно брать денег за час работы в зависимости от количества рабочих часов<\/p>\n<p>В месяце 160 рабочих часов, если мы будем брать деньги за все рабочие часы, то час должен стоить — 1 098 ₽<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/blog.fossko.ru\/pictures\/Raschet-raboty-v-chas---Google-Tablicy---Google-Chrome-2021-05-18-10.00.37.jpg\" width=\"923\" height=\"214\" alt=\"\" \/>\n<div class=\"e2-text-caption\">Если работать по 16 часов в месяц, нужно брать за час почти 11 тысяч рублей<\/div>\n<\/div>\n<p><a href=\"https:\/\/docs.google.com\/spreadsheets\/d\/1tsol_GQFilrJyfUCukmq1cN9Q_p5ockjNfb5RXqOyms\/copy\">Можно подставить свои данные в таблицу с расчетами<\/a> и посмотреть сколько «стоит» час вашей продуктивной работы<\/p>\n",
            "date_published": "2021-05-18T10:04:30+03:00",
            "date_modified": "2021-05-18T10:04:14+03:00",
            "tags": [
                "аналитика",
                "таблицы",
                "эксель"
            ],
            "image": "https:\/\/blog.fossko.ru\/pictures\/Raschet-raboty-v-chas---Google-Tablicy---Google-Chrome-2021-05-18-10.00.37.jpg",
            "_date_published_rfc2822": "Tue, 18 May 2021 10:04:30 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "454",
            "_e2_data": {
                "is_favourite": true,
                "links_required": [
                    "highlight\/highlight.js",
                    "highlight\/highlight.css"
                ],
                "og_images": [
                    "https:\/\/blog.fossko.ru\/pictures\/Raschet-raboty-v-chas---Google-Tablicy---Google-Chrome-2021-05-18-10.00.37.jpg"
                ]
            }
        },
        {
            "id": "451",
            "url": "https:\/\/blog.fossko.ru\/all\/bystraya-ocenka-kachestva-auditorii\/",
            "title": "Быстрая оценка качества аудитории",
            "content_html": "<p>Для быстрой оценки качества аудитории паблика соцсети, инстаграма или канала телеграма, используют «показатель вовлеченности по охвату» или  ERR (Engagement Rate by Reach)<\/p>\n<p>Для подсчета нужно взять среднее арифметическое показов постов за период и разделить на количество подписчиков. Полученное число перевести в проценты.<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">ERR = (Средний охват одного поста \/ Количество подписчиков) × 100%<\/code><\/pre><p>Канал <a href=\"https:\/\/t.me\/glvrdru\">Максима Ильяхова<\/a> имеет 52 000 подписчиков, в среднем просмотров одной записи — 15 000.<br \/>\nПоказать вовлеченности канала Максима Ильяхова = 15 000 \/ 52 000 = 0,29 или 29%<br \/>\nТеперь это число можно сравнить с результатами других каналов.<\/p>\n<p>Канал <a href=\"https:\/\/t.me\/ilyabirman_channel\">Ильи Бирмана<\/a> — 9 000 подписчиков, просмотр постов — 3 200<br \/>\nПоказатель вовлечености — 35%<\/p>\n<p>Канал <a href=\"https:\/\/t.me\/bureaugorbunov\">Бюро Горбунова<\/a> — 5 800 подписчиков, просмотр постов — 1 700<br \/>\nПоказатель вовлечености — 29%<\/p>\n<p>При помощи быстрой оценки, можно сделать вывод, насколько лояльна аудитория канала.<br \/>\nГлавное сравнивать каналы в одной сети и в одной категории.<\/p>\n<p>Инстаграм <a href=\"https:\/\/www.instagram.com\/glvrdru\/\">Максима Ильяхова<\/a> — 63 200 подписчиков, лайков поста — 1 800<br \/>\nПоказатель вовлечености — 2,8%<\/p>\n<p>Инстаграм <a href=\"https:\/\/www.instagram.com\/burosfera\/\">Бюро Горбунова<\/a> — 1 000 подписчиков, лайков поста — 20<br \/>\nПоказатель вовлечености — 2%<\/p>\n<p>Удобнее вставить данные в таблицу<\/p>\n<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" class=\"e2-text-table\">\n<tr>\n<td><b>Автор<\/b><\/td>\n<td><b>ТГ<\/b><\/td>\n<td><b>Инст<\/b><\/td>\n<\/tr>\n<tr>\n<td>Ильяхов<\/td>\n<td>29%<\/td>\n<td>2,8%<\/td>\n<\/tr>\n<tr>\n<td>Бирман<\/td>\n<td>35%<\/td>\n<td>—<\/td>\n<\/tr>\n<tr>\n<td>Бюро<\/td>\n<td>29%<\/td>\n<td>2,0%<\/td>\n<\/tr>\n<\/table>\n<p>Показатели вовлечености каналов Ильяхова, Бирмана и Бюро Горбунова. Данные март 2021.<\/p>\n<p>Данные вовлечености считают, когда идет закупка рекламного трафика, то есть нужно решить размещать свой контент на площадке.<\/p>\n",
            "date_published": "2021-03-05T11:26:14+03:00",
            "date_modified": "2021-03-05T11:26:02+03:00",
            "tags": [
                "аналитика",
                "маркетинг"
            ],
            "_date_published_rfc2822": "Fri, 05 Mar 2021 11:26:14 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "451",
            "_e2_data": {
                "is_favourite": true,
                "links_required": [
                    "highlight\/highlight.js",
                    "highlight\/highlight.css"
                ],
                "og_images": []
            }
        },
        {
            "id": "446",
            "url": "https:\/\/blog.fossko.ru\/all\/avtorizaciya-na-sayte-cherez-piton\/",
            "title": "Авторизация на сайте через питон",
            "content_html": "<p>По материалам статьи: <a href=\"https:\/\/gadjimuradov.ru\/post\/python-requests-avtorizaciya-na-sajte\/\">Python requests. Авторизация на сайте<\/a><\/p>\n<p>Я описал <a href=\"\/all\/parsing-saytov-cherez-piton\/\">как парсить сайты через модуль requests<\/a>. Бывают случаи когда для части сайта нужна авторизация, то есть логин и пароль.<\/p>\n<p>Для авторизации нужно поддерживать активную сессию в модуле requests, через session.get()<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/blog.fossko.ru\/pictures\/frilans---Jupyter-Notebook---Google-Chrome-2021-02-05-15.01.48.jpg\" width=\"377\" height=\"120\" alt=\"\" \/>\n<div class=\"e2-text-caption\">session.get(url) вместо requests.get(url)<\/div>\n<\/div>\n<pre class=\"e2-text-code\"><code class=\"\">import requests\nimport re\nfrom bs4 import BeautifulSoup\nimport pandas as pd\n\nurl = &#039;https:\/\/freelance.ru\/login\/&#039;\n\n# Важно. По умолчанию requests отправляет вот такой \n# заголовок &#039;User-Agent&#039;: &#039;python-requests\/2.22.0 ,  а это приводит к тому , что Nginx\n# отправляет 404 ответ. Поэтому нам нужно сообщить серверу, что запрос идет от браузера  \n\nuser_agent_val = &#039;Mozilla\/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/88.0.4324.104 Safari\/537.36&#039;\n\n# Создаем сессию и указываем ему наш user-agent\nsession = requests.Session()\nr = session.get(url, headers = {\n    &#039;User-Agent&#039;: user_agent_val\n})\n\n# Указываем referer. Иногда , если не указать , то приводит к ошибкам. \nsession.headers.update({&#039;Referer&#039;:url})<\/code><\/pre><p>В оригинальной статье было снимание куков, я не совсем понимаю когда использовать. В данном скрипе, я это не использую.<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">_xsrf = session.cookies.get(&#039;_xsrf&#039;, domain=&quot;.freelance.ru&quot;)<\/code><\/pre><p>Дальше посылаем post-запрос<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">login = &quot;xxxx&quot;\npasswd = &quot;xxxx&quot;\n\npost_request = session.post(url, {\n    &#039;login&#039;: login ,\n    &#039;passwd&#039;: passwd,\n    &quot;check_ip&quot;: &quot;on&quot;,\n    &quot;submit&quot;: &quot;%C2%F5%EE%E4&quot;,\n    &quot;auth&quot;: &quot;auth&quot;,\n    &quot;return_url&quot;: &quot;\/login\/&quot;\n})<\/code><\/pre><p>Для того чтобы узнать пост запрос, нужно зайти в инспектор кода, вкладка сеть, и найти запрос который посылается<\/p>\n<div class=\"e2-text-picture\">\n<div class=\"fotorama\" data-width=\"638\" data-ratio=\"0.70419426048565\">\n<img src=\"https:\/\/blog.fossko.ru\/pictures\/Freelance.Ru-_-Nastroyki---Moy-kabinet---Google-Chrome-2021-02-05-14.13.34.jpg\" width=\"638\" height=\"906\" alt=\"\" \/>\n<img src=\"https:\/\/blog.fossko.ru\/pictures\/Freelance.Ru-_-Nastroyki---Moy-kabinet---Google-Chrome-2021-02-05-14.14.23.jpg\" width=\"615\" height=\"880\" alt=\"\" \/>\n<\/div>\n<div class=\"e2-text-caption\">В submit я подставил значение из не декодированного вида.<\/div>\n<\/div>\n<p>Теперь переходим в закрытый раздел, обновляем сессию и снимаем данные<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">url = &quot;https:\/\/freelance.ru\/setup\/&quot;\nr = session.get(url)\nsoup = BeautifulSoup(r.text, &quot;lxml&quot;)\nsoup<\/code><\/pre><div class=\"e2-text-picture\">\n<div class=\"fotorama\" data-width=\"744\" data-ratio=\"3.7766497461929\">\n<img src=\"https:\/\/blog.fossko.ru\/pictures\/frilans---Jupyter-Notebook---Google-Chrome-2021-02-05-15.07.28.jpg\" width=\"744\" height=\"197\" alt=\"\" \/>\n<img src=\"https:\/\/blog.fossko.ru\/pictures\/Freelance.Ru-_-Nastroyki---Moy-kabinet---Google-Chrome-2021-02-05-15.07.44.jpg\" width=\"462\" height=\"285\" alt=\"\" \/>\n<\/div>\n<div class=\"e2-text-caption\">Мой рейтинг на этом сервисе.<\/div>\n<\/div>\n<p>Дальше можно снимать нужную информацию, <a href=\"\/all\/parsing-saytov-cherez-piton\/\">используя BeautifulSoup<\/a><\/p>\n<p>Для библиотеки Requests, есть хорошие статьи от Александра, pythonru<\/p>\n<p><a href=\"https:\/\/pythonru.com\/biblioteki\/kratkoe-rukovodstvo-po-biblioteke-python-requests\">Краткое руководство по библиотеке Python Requests<\/a> — рассказывает кратко, как пользоваться библиотекой.<\/p>\n<p><a href=\"https:\/\/pythonru.com\/biblioteki\/prodvinutoe-rukovodstvo-po-biblioteke-python-requests\">Продвинутое руководство по библиотеке Python Requests<\/a> — дополнительная информация, по объектам session, сертификатам SSL, прокси.<\/p>\n",
            "date_published": "2021-02-05T15:11:29+03:00",
            "date_modified": "2022-11-21T11:28:46+03:00",
            "tags": [
                "аналитика",
                "парсинг",
                "питон"
            ],
            "image": "https:\/\/blog.fossko.ru\/pictures\/frilans---Jupyter-Notebook---Google-Chrome-2021-02-05-15.01.48.jpg",
            "_date_published_rfc2822": "Fri, 05 Feb 2021 15:11:29 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "446",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [
                    "highlight\/highlight.js",
                    "highlight\/highlight.css",
                    "jquery\/jquery.js",
                    "fotorama\/fotorama.css",
                    "fotorama\/fotorama.js"
                ],
                "og_images": [
                    "https:\/\/blog.fossko.ru\/pictures\/frilans---Jupyter-Notebook---Google-Chrome-2021-02-05-15.01.48.jpg",
                    "https:\/\/blog.fossko.ru\/pictures\/Freelance.Ru-_-Nastroyki---Moy-kabinet---Google-Chrome-2021-02-05-14.13.34.jpg",
                    "https:\/\/blog.fossko.ru\/pictures\/Freelance.Ru-_-Nastroyki---Moy-kabinet---Google-Chrome-2021-02-05-14.14.23.jpg",
                    "https:\/\/blog.fossko.ru\/pictures\/frilans---Jupyter-Notebook---Google-Chrome-2021-02-05-15.07.28.jpg",
                    "https:\/\/blog.fossko.ru\/pictures\/Freelance.Ru-_-Nastroyki---Moy-kabinet---Google-Chrome-2021-02-05-15.07.44.jpg"
                ]
            }
        },
        {
            "id": "443",
            "url": "https:\/\/blog.fossko.ru\/all\/parsing-saytov-cherez-piton-modulem-selenium\/",
            "title": "Парсинг сайтов через питон модулем selenium",
            "content_html": "<p>Работа идет через модуль selenium, для него нужно скачать <a href=\"https:\/\/chromedriver.chromium.org\/downloads\"> Chrome driver<\/a> и браузер Chrome.<br \/>\nВажно чтобы версия  браузера и Chrome driver была одна и та же<\/p>\n<div class=\"e2-text-picture\">\n<div class=\"fotorama\" data-width=\"779\" data-ratio=\"2.2449567723343\">\n<img src=\"https:\/\/blog.fossko.ru\/pictures\/Nastroyki-O-brauzere-Chrome---Google-Chrome-2021-01-22-16.29.14.jpg\" width=\"779\" height=\"347\" alt=\"\" \/>\n<img src=\"https:\/\/blog.fossko.ru\/pictures\/Downloads---ChromeDriver---WebDriver-for-Chrome---Google-Chrome-2021-01-22-16.29.42.jpg\" width=\"745\" height=\"390\" alt=\"\" \/>\n<\/div>\n<div class=\"e2-text-caption\">Версию браузера смотрим Справка → О браузере, и сверяемся с версией хром драйвер.<\/div>\n<\/div>\n<p>Чтобы точно быть уверенным, что все работает установите библиотеку selenium, импортируйте ее и запустите браузер через хром драйвер.<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">pip install selenium\nfrom selenium.webdriver import Chrome\nbrowser = Chrome (&quot;d:\\del\\chromedriver_win32\\chromedriver.exe&quot;)<\/code><\/pre><div class=\"e2-text-picture\">\n<img src=\"https:\/\/blog.fossko.ru\/pictures\/selenium---Jupyter-Notebook---Google-Chrome-2021-01-22-16.34.08.jpg\" width=\"755\" height=\"246\" alt=\"\" \/>\n<\/div>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/blog.fossko.ru\/pictures\/data_,---Google-Chrome-2021-01-22-16.35.27.jpg\" width=\"822\" height=\"669\" alt=\"\" \/>\n<div class=\"e2-text-caption\">Если все корректно, запускается хром в режиме: «Браузером управляет тестовое ПО»<\/div>\n<\/div>\n<p>В тестовом браузере будут выполнятся все команды.<\/p>\n<p>Импортируем необходимые библиотеки<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">from selenium.webdriver import Chrome\nfrom selenium.webdriver.common.keys import Keys\nfrom selenium.webdriver.support.ui import WebDriverWait as wait\nfrom selenium.webdriver.support import expected_conditions as EC\nfrom selenium.common.exceptions import NoSuchElementException\nfrom bs4 import BeautifulSoup\nfrom time import sleep<\/code><\/pre><p>Переход на сайт<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">url = &quot;https:\/\/bus.gov.ru\/registry&quot;\nbrowser.get(url)<\/code><\/pre><div class=\"e2-text-picture\">\n<img src=\"https:\/\/blog.fossko.ru\/pictures\/Reestr-organizaciy---Google-Chrome-2021-01-22-16.38.35.jpg\" width=\"1131\" height=\"605\" alt=\"\" \/>\n<div class=\"e2-text-caption\">В тестовом браузере открылся сайт <a href=\"https:\/\/bus.gov.ru\/registry\">https:\/\/bus.gov.ru\/registry<\/a><\/div>\n<\/div>\n<p>Нужно ввести в строке поиска «онкологический диспансер»<\/p>\n<p>Способ 1<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">input_el = browser.find_element_by_tag_name(&quot;input&quot;)\ninput_el.send_keys(&quot;онкологический диспансер&quot;)<\/code><\/pre><div class=\"e2-text-picture\">\n<img src=\"https:\/\/blog.fossko.ru\/pictures\/Reestr-organizaciy---Google-Chrome-2021-01-22-16.41.08.jpg\" width=\"951\" height=\"488\" alt=\"\" \/>\n<div class=\"e2-text-caption\">Вводится наименование в поле <i>input<\/i><\/div>\n<\/div>\n<p>Нажать энтер или кнопку найти.<\/p>\n<p>Нажатие кнопки энтер:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">input_el.send_keys(Keys.ENTER)<\/code><\/pre><p>Нажатие кнопки найти:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">browser.find_element_by_xpath(&quot;\/html\/body\/div[2]\/ui-view\/form\/div[2]\/div\/div[2]\/div\/button&quot;).click()<\/code><\/pre><div class=\"e2-text-picture\">\n<img src=\"https:\/\/blog.fossko.ru\/pictures\/Reestr-organizaciy---Google-Chrome-2021-01-22-16.41.33.jpg\" width=\"1110\" height=\"448\" alt=\"\" \/>\n<div class=\"e2-text-caption\">После выполнения кода браузер ищет диспансеры<\/div>\n<\/div>\n<p>Дальше работаем как <a href=\"\/all\/parsing-saytov-cherez-piton\/\">при простом парсинге сайта<\/a><\/p>\n<pre class=\"e2-text-code\"><code class=\"\">soup = BeautifulSoup(browser.page_source, &quot;lxml&quot;)\nsoup<\/code><\/pre><div class=\"e2-text-picture\">\n<img src=\"https:\/\/blog.fossko.ru\/pictures\/selenium---Jupyter-Notebook---Google-Chrome-2021-01-22-16.51.45.jpg\" width=\"1102\" height=\"324\" alt=\"\" \/>\n<div class=\"e2-text-caption\">В переменной <i>soup<\/i> вся текущая страница<\/div>\n<\/div>\n<p>Смотрим где содержится название учреждения и ссылка на него<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">soup.find (&quot;a&quot;, class_=&quot;result__button&quot;).get(&quot;href&quot;)\nsoup.find(&quot;a&quot;,class_=&quot;result__title&quot;).text<\/code><\/pre><div class=\"e2-text-picture\">\n<img src=\"https:\/\/blog.fossko.ru\/pictures\/selenium---Jupyter-Notebook---Google-Chrome-2021-01-22-16.53.27.jpg\" width=\"1137\" height=\"220\" alt=\"\" \/>\n<div class=\"e2-text-caption\">Для получения части ссылки используем запрос <i>get<\/i>, для названия <i>text<\/i><\/div>\n<\/div>\n<p>Чтобы не искать по всей странице, можно оставить информацию которая нам нужна, она содержится к контейнере c классом <i>results<\/i><\/p>\n<pre class=\"e2-text-code\"><code class=\"\">orgs=soup.findAll(&quot;div&quot;,class_=&quot;result&quot;)\norgs<\/code><\/pre><div class=\"e2-text-picture\">\n<img src=\"https:\/\/blog.fossko.ru\/pictures\/selenium---Jupyter-Notebook---Google-Chrome-2021-01-22-16.55.56.jpg\" width=\"1019\" height=\"390\" alt=\"\" \/>\n<div class=\"e2-text-caption\">Содержимое всех контейнеров <i>result<\/i><\/div>\n<\/div>\n<p>Обработка текущей страницы<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">data = []\nfor el in orgs:\n    name = el.find(&quot;a&quot;, class_=&quot;result__title&quot;).text\n    link = &quot;https:\/\/bus.gov.ru\/registry&quot; + el.find(&quot;a&quot;, class_=&quot;result__button&quot;).get(&quot;href&quot;)\n    #print (name, link)\n    data.append([name,link])\ndata<\/code><\/pre><div class=\"e2-text-picture\">\n<img src=\"https:\/\/blog.fossko.ru\/pictures\/selenium---Jupyter-Notebook---Google-Chrome-2021-01-22-16.57.40.jpg\" width=\"1112\" height=\"373\" alt=\"\" \/>\n<div class=\"e2-text-caption\">Названия учреждений и ссылка на страницу с описанием<\/div>\n<\/div>\n<p>Нужно нажимать на страницу «следующая»<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">next_button = browser.find_element_by_class_name(&quot;pagination__next&quot;)\nnext_button.click()<\/code><\/pre><p>Код нажимает на элемент с классом <i>pagination__next<\/i><\/p>\n<p>Готовый код для сбора всей информации<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">url = &#039;https:\/\/bus.gov.ru\/registry&#039;\nbrowser.get(url)\nsleep(5)\ninput_el = browser.find_element_by_tag_name(&#039;input&#039;)\ninput_el.send_keys(&#039;онкологический диспансер&#039;)\ninput_el.send_keys(Keys.ENTER)\nsleep(5)\n\ndata = []\n\n\nfor i in range(10):\n    \n    soup = BeautifulSoup(browser.page_source, &quot;lxml&quot;)\n    orgs = soup.findAll(&#039;div&#039;, class_=&#039;result&#039;)\n    \n    for el in orgs:\n        name = el.find(&#039;a&#039;, class_=&#039;result__title&#039;).text\n        link = &quot;https:\/\/bus.gov.ru&quot;+el.find(&#039;a&#039;, class_=&#039;result__button&#039;).get(&#039;href&#039;)\n        print(name, link)\n        \n\n        data.append([name, link])\n        \n    print(len(data))\n    try:\n        next_button = browser.find_element_by_class_name(&#039;pagination__next&#039;)\n        next_button.click()\n    except NoSuchElementException:\n        continue\n    sleep(6)<\/code><\/pre><div class=\"e2-text-picture\">\n<img src=\"https:\/\/blog.fossko.ru\/pictures\/selenium---Jupyter-Notebook---Google-Chrome-2021-01-22-17.01.04.jpg\" width=\"1138\" height=\"457\" alt=\"\" \/>\n<div class=\"e2-text-caption\">Все данные попадают в таблицу <i>data<\/i>, в ней столбец с наименованием и ссылка<\/div>\n<\/div>\n<div class=\"e2-text-video\">\n<iframe src=\"https:\/\/www.youtube.com\/embed\/xhEhlyFn1vM?enablejsapi=1\" allow=\"autoplay\" frameborder=\"0\" allowfullscreen><\/iframe>\n<div class=\"e2-text-caption\">Подробный вебинар про модуль selenium, используется <a href=\"https:\/\/www.anaconda.com\/products\/individual\">среда разработки Анаконда<\/a> с модулем Юпитер. Во второй части парсится сайт с судебными решениями.<\/div>\n<\/div>\n",
            "date_published": "2021-01-22T17:03:17+03:00",
            "date_modified": "2023-11-15T18:52:30+03:00",
            "tags": [
                "аналитика",
                "парсинг",
                "питон"
            ],
            "image": "https:\/\/blog.fossko.ru\/pictures\/Nastroyki-O-brauzere-Chrome---Google-Chrome-2021-01-22-16.29.14.jpg",
            "_date_published_rfc2822": "Fri, 22 Jan 2021 17:03:17 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "443",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [
                    "jquery\/jquery.js",
                    "fotorama\/fotorama.css",
                    "fotorama\/fotorama.js",
                    "highlight\/highlight.js",
                    "highlight\/highlight.css"
                ],
                "og_images": [
                    "https:\/\/blog.fossko.ru\/pictures\/Nastroyki-O-brauzere-Chrome---Google-Chrome-2021-01-22-16.29.14.jpg",
                    "https:\/\/blog.fossko.ru\/pictures\/Downloads---ChromeDriver---WebDriver-for-Chrome---Google-Chrome-2021-01-22-16.29.42.jpg",
                    "https:\/\/blog.fossko.ru\/pictures\/selenium---Jupyter-Notebook---Google-Chrome-2021-01-22-16.34.08.jpg",
                    "https:\/\/blog.fossko.ru\/pictures\/data_,---Google-Chrome-2021-01-22-16.35.27.jpg",
                    "https:\/\/blog.fossko.ru\/pictures\/Reestr-organizaciy---Google-Chrome-2021-01-22-16.38.35.jpg",
                    "https:\/\/blog.fossko.ru\/pictures\/Reestr-organizaciy---Google-Chrome-2021-01-22-16.41.08.jpg",
                    "https:\/\/blog.fossko.ru\/pictures\/Reestr-organizaciy---Google-Chrome-2021-01-22-16.41.33.jpg",
                    "https:\/\/blog.fossko.ru\/pictures\/selenium---Jupyter-Notebook---Google-Chrome-2021-01-22-16.51.45.jpg",
                    "https:\/\/blog.fossko.ru\/pictures\/selenium---Jupyter-Notebook---Google-Chrome-2021-01-22-16.53.27.jpg",
                    "https:\/\/blog.fossko.ru\/pictures\/selenium---Jupyter-Notebook---Google-Chrome-2021-01-22-16.55.56.jpg",
                    "https:\/\/blog.fossko.ru\/pictures\/selenium---Jupyter-Notebook---Google-Chrome-2021-01-22-16.57.40.jpg",
                    "https:\/\/blog.fossko.ru\/pictures\/selenium---Jupyter-Notebook---Google-Chrome-2021-01-22-17.01.04.jpg",
                    "https:\/\/blog.fossko.ru\/pictures\/remote\/youtube-xhEhlyFn1vM-cover.jpg"
                ]
            }
        },
        {
            "id": "442",
            "url": "https:\/\/blog.fossko.ru\/all\/parsing-saytov-cherez-piton\/",
            "title": "Парсинг сайтов через питон",
            "content_html": "<p>Устанавливаем и импортируем библиотеки в питон<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">pip install requests\npip install pandas\nimport requests\nfrom bs4 import BeautifulSoup\nimport pandas as pd\nfrom time import sleep<\/code><\/pre><p>Переменной <i>url<\/i> присваиваем  ссылку на страницу кинопоиска, в переменную <i>r<\/i> результат гет запроса к этой странице<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">url = &quot;https:\/\/www.kinopoisk.ru\/s\/type\/film\/list\/1\/find\/%F1%E5%EA%F1\/&quot;\nr = requests.get(url)<\/code><\/pre><div class=\"e2-text-picture\">\n<img src=\"https:\/\/blog.fossko.ru\/pictures\/urok-zhurnalisty-piton---Jupyter-Notebook---Google-Chrome-2021-01-21-12.53.48.jpg\" width=\"1162\" height=\"429\" alt=\"\" \/>\n<div class=\"e2-text-caption\">Текстовое содержимое страницы сайта — <i>r.text<\/i><\/div>\n<\/div>\n<p>Переведем содержимое страницы в формат кода<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">soup = BeautifulSoup(r.text, &quot;lxml&quot;)<\/code><\/pre><div class=\"e2-text-picture\">\n<img src=\"https:\/\/blog.fossko.ru\/pictures\/urok-zhurnalisty-piton---Jupyter-Notebook---Google-Chrome-2021-01-21-12.56.04.jpg\" width=\"1147\" height=\"412\" alt=\"\" \/>\n<div class=\"e2-text-caption\">Содержимое переменной — <i>soup<\/i><\/div>\n<\/div>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/blog.fossko.ru\/pictures\/Rezultaty-poiska-(922)---Google-Chrome-2021-01-21-13.01.03.jpg\" width=\"1629\" height=\"461\" alt=\"\" \/>\n<div class=\"e2-text-caption\">При помощи инспектора кода находим контейнеры с названием фильма, годом, названием на языке оригинала и баллом кинопоиска<\/div>\n<\/div>\n<pre class=\"e2-text-code\"><code class=\"\">russian_name = soup.find(&#039;div&#039;,class_ = &quot;element&quot;).find(&#039;div&#039;, class_ = &quot;info&quot;).find(&#039;a&#039;, class_ = &quot;js-serp-metrika&quot;).text\nrussian_name\noriginal_name = soup.find(&#039;div&#039;,class_ = &quot;element&quot;).find(&#039;span&#039;, class_ = &quot;gray&quot;).text\noriginal_name\nyear = soup.find(&#039;div&#039;,class_ = &quot;element&quot;).find(&#039;span&#039;, class_ = &quot;year&quot;).text\nyear\nkinopoisk = soup.find(&#039;div&#039;,class_ = &quot;element&quot;).find(&#039;div&#039;, class_ = &quot;rating&quot;).text\nkinopoisk<\/code><\/pre><div class=\"e2-text-picture\">\n<img src=\"https:\/\/blog.fossko.ru\/pictures\/urok-zhurnalisty-piton---Jupyter-Notebook---Google-Chrome-2021-01-21-13.04.12.jpg\" width=\"1150\" height=\"475\" alt=\"\" \/>\n<div class=\"e2-text-caption\">Все данные по первому фильму встречающемуся на странице<\/div>\n<\/div>\n<p>Находим контейнер с кусочком кода и генерируем ссылку на фильм<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">link = &quot;https:\/\/www.kinopoisk.ru&quot; +soup.find(&#039;div&#039;,class_ = &quot;element&quot;).find(&#039;div&#039;, class_ = &quot;info&quot;).find(&#039;a&#039;).get(&quot;data-url&quot;)\nlink<\/code><\/pre><div class=\"e2-text-picture\">\n<div class=\"fotorama\" data-width=\"1253\" data-ratio=\"9.7890625\">\n<img src=\"https:\/\/blog.fossko.ru\/pictures\/urok-zhurnalisty-piton---Jupyter-Notebook---Google-Chrome-2021-01-21-13.06.27.jpg\" width=\"1253\" height=\"128\" alt=\"\" \/>\n<img src=\"https:\/\/blog.fossko.ru\/pictures\/urok-zhurnalisty-piton---Jupyter-Notebook---Google-Chrome-2021-01-21-13.08.59.jpg\" width=\"1121\" height=\"164\" alt=\"\" \/>\n<\/div>\n<div class=\"e2-text-caption\">Готовая ссылка на фильм и контейнер содержащий ссылку<\/div>\n<\/div>\n<p>Можно составить код, который сделает таблицу, содержащую все фильмы с данной таблицы<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">data = []\nfilms =soup.findAll(&quot;div&quot;,class_ = &quot;element&quot;)\nfor film in films:\n    russian_name = film.find(&#039;div&#039;, class_ = &quot;info&quot;).find(&#039;a&#039;, class_ = &quot;js-serp-metrika&quot;).text\n    original_name = film.find(&#039;span&#039;, class_ = &quot;gray&quot;).text\n    \n    try:\n        year = film.find(&#039;span&#039;, class_ = &quot;year&quot;).text\n    except:\n        year = &quot;&quot;\n    \n    try:\n        kinopoisk = film.find(&#039;div&#039;, class_ = &quot;rating&quot;).text\n    except:\n        kinopoisk = &quot;&quot;\n    \n    link = &quot;https:\/\/www.kinopoisk.ru&quot; +film.find(&#039;div&#039;, class_ = &quot;info&quot;).find(&#039;a&#039;).get(&quot;data-url&quot;)\n  \n    #print (russian_name)\n    #print (original_name)\n    #print (year)\n    #print (kinopoisk)\n    #print (link)\n    data.append([russian_name, original_name,year,kinopoisk,link  ])<\/code><\/pre><div class=\"e2-text-picture\">\n<img src=\"https:\/\/blog.fossko.ru\/pictures\/urok-zhurnalisty-piton---Jupyter-Notebook---Google-Chrome-2021-01-21-13.12.30.jpg\" width=\"1015\" height=\"439\" alt=\"\" \/>\n<div class=\"e2-text-caption\">Содержимое таблицы <i>data<\/i><\/div>\n<\/div>\n<p>Мы можем собрать все фильмы с одной страницы. Теперь нужно сделать цикл для сбора со всех страниц данного раздела. В этом разделе 11 страниц, значит нужен цикл для формирования списка страниц<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">for page in range(1,12):\n    url = f&quot;https:\/\/www.kinopoisk.ru\/s\/type\/film\/list\/1\/find\/%F1%E5%EA%F1\/order\/relevant\/page\/{str(page)}\/&quot;\n    print(url)<\/code><\/pre><div class=\"e2-text-picture\">\n<img src=\"https:\/\/blog.fossko.ru\/pictures\/urok-zhurnalisty-piton---Jupyter-Notebook---Google-Chrome-2021-01-21-13.15.33.jpg\" width=\"1030\" height=\"328\" alt=\"\" \/>\n<div class=\"e2-text-caption\">Результат выполнения цикла <i>for<\/i> с полученными страницами<\/div>\n<\/div>\n<p>Теперь можно дополнить весь код. Не забываем про слип, так как на многих сайтах стоит защита от парсинга<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">data = []\n\nfor page in range(1,12):\n    url = f&quot;https:\/\/www.kinopoisk.ru\/s\/type\/film\/list\/1\/find\/%F1%E5%EA%F1\/order\/relevant\/page\/{str(page)}\/&quot;\n    print(url)\n    \n    r = requests.get(url)\n    sleep(40)\n    soup = BeautifulSoup(r.text, &quot;lxml&quot;)\n    \n    films = soup.findAll(&quot;div&quot;, class_ =&quot;element&quot;)\n\n    for film in films:\n        \n        russian_name = film.find(&quot;div&quot;, class_=&quot;info&quot;).find(&quot;a&quot;).text\n       # print(russian_name)\n    \n        original_name = film.find(&quot;div&quot;, class_=&quot;info&quot;).find(&quot;span&quot;, class_=&quot;gray&quot;).text\n    \n        year = film.find(&quot;span&quot;, class_=&quot;year&quot;).text\n\n        try:\n            year = film.find(&quot;div&quot;, class_= &quot;span&quot;).text\n        except:\n            year = &quot;&quot;\n        \n        try:\n            rate = film.find(&quot;div&quot;, class_= &quot;rating&quot;).text\n        except:\n            rate = &quot;&quot;\n    \n        link = &quot;https:\/\/www.kinopoisk.ru&quot;+film.find(&quot;div&quot;, class_=&quot;info&quot;).find(&quot;a&quot;).get(&quot;data-url&quot;)\n    \n        data.append([russian_name, original_name, year, link])<\/code><\/pre><div class=\"e2-text-picture\">\n<img src=\"https:\/\/blog.fossko.ru\/pictures\/urok-zhurnalisty-piton---Jupyter-Notebook---Google-Chrome-2021-01-21-13.18.07.jpg\" width=\"1000\" height=\"304\" alt=\"\" \/>\n<div class=\"e2-text-caption\">По мере прохождения страниц, будут печатаются страницы на которых находится сейчас робот<\/div>\n<\/div>\n<p>Делаем заголовки таблицы и выгружаем в файл csv<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">header = [&#039;russian_name&#039;, &#039;original_name&#039;, &#039;year&#039;, &#039;link&#039;]\ndf = pd.DataFrame(data, columns = header)\ndf.head()\n\ndf.to_csv(&quot;d:\\data_kino.csv&quot;)<\/code><\/pre><div class=\"e2-text-picture\">\n<img src=\"https:\/\/blog.fossko.ru\/pictures\/urok-zhurnalisty-piton---Jupyter-Notebook---Google-Chrome-2021-01-21-13.21.39.jpg\" width=\"1100\" height=\"372\" alt=\"\" \/>\n<div class=\"e2-text-caption\">получившаяся таблица с выгрузкой<\/div>\n<\/div>\n<p>Можно и в питоне получить список всех ссылок на фильмы, работая с таблицей<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">for i in data:\n    #print (i)\n    link = i[3]\n    print (link)<\/code><\/pre><div class=\"e2-text-picture\">\n<img src=\"https:\/\/blog.fossko.ru\/pictures\/urok-zhurnalisty-piton---Jupyter-Notebook---Google-Chrome-2021-01-21-13.23.49.jpg\" width=\"625\" height=\"357\" alt=\"\" \/>\n<\/div>\n<div class=\"e2-text-video\">\n<iframe src=\"https:\/\/www.youtube.com\/embed\/ZhTf6NIVLEU?enablejsapi=1\" allow=\"autoplay\" frameborder=\"0\" allowfullscreen><\/iframe>\n<div class=\"e2-text-caption\">Вебинар курса «Веб-скрейпинг для журналистов. С программированием и без». Используется среда разработки <a href=\"https:\/\/www.anaconda.com\/products\/individual\">Анаконда<\/a>.<\/div>\n<\/div>\n",
            "date_published": "2021-01-21T13:25:45+03:00",
            "date_modified": "2023-11-15T18:53:07+03:00",
            "tags": [
                "аналитика",
                "парсинг",
                "питон"
            ],
            "image": "https:\/\/blog.fossko.ru\/pictures\/urok-zhurnalisty-piton---Jupyter-Notebook---Google-Chrome-2021-01-21-12.53.48.jpg",
            "_date_published_rfc2822": "Thu, 21 Jan 2021 13:25:45 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "442",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [
                    "highlight\/highlight.js",
                    "highlight\/highlight.css",
                    "jquery\/jquery.js",
                    "fotorama\/fotorama.css",
                    "fotorama\/fotorama.js"
                ],
                "og_images": [
                    "https:\/\/blog.fossko.ru\/pictures\/urok-zhurnalisty-piton---Jupyter-Notebook---Google-Chrome-2021-01-21-12.53.48.jpg",
                    "https:\/\/blog.fossko.ru\/pictures\/urok-zhurnalisty-piton---Jupyter-Notebook---Google-Chrome-2021-01-21-12.56.04.jpg",
                    "https:\/\/blog.fossko.ru\/pictures\/Rezultaty-poiska-(922)---Google-Chrome-2021-01-21-13.01.03.jpg",
                    "https:\/\/blog.fossko.ru\/pictures\/urok-zhurnalisty-piton---Jupyter-Notebook---Google-Chrome-2021-01-21-13.04.12.jpg",
                    "https:\/\/blog.fossko.ru\/pictures\/urok-zhurnalisty-piton---Jupyter-Notebook---Google-Chrome-2021-01-21-13.06.27.jpg",
                    "https:\/\/blog.fossko.ru\/pictures\/urok-zhurnalisty-piton---Jupyter-Notebook---Google-Chrome-2021-01-21-13.08.59.jpg",
                    "https:\/\/blog.fossko.ru\/pictures\/urok-zhurnalisty-piton---Jupyter-Notebook---Google-Chrome-2021-01-21-13.12.30.jpg",
                    "https:\/\/blog.fossko.ru\/pictures\/urok-zhurnalisty-piton---Jupyter-Notebook---Google-Chrome-2021-01-21-13.15.33.jpg",
                    "https:\/\/blog.fossko.ru\/pictures\/urok-zhurnalisty-piton---Jupyter-Notebook---Google-Chrome-2021-01-21-13.18.07.jpg",
                    "https:\/\/blog.fossko.ru\/pictures\/urok-zhurnalisty-piton---Jupyter-Notebook---Google-Chrome-2021-01-21-13.21.39.jpg",
                    "https:\/\/blog.fossko.ru\/pictures\/urok-zhurnalisty-piton---Jupyter-Notebook---Google-Chrome-2021-01-21-13.23.49.jpg",
                    "https:\/\/blog.fossko.ru\/pictures\/remote\/youtube-ZhTf6NIVLEU-cover.jpg"
                ]
            }
        },
        {
            "id": "57",
            "url": "https:\/\/blog.fossko.ru\/all\/prostaya-ocenka-proektov\/",
            "title": "Простая оценка проектов",
            "content_html": "<p>Максим Дорофеев, публикует ролики оценки проектов.<\/p>\n<p>Первый уровень это простая диаграмма работ.<\/p>\n<p>Зная все работы которые есть в проекте, трудозатраты на эти работы, можно в прикинуть когда работы завершатся.<\/p>\n<p>Например: Студент готовится к экзамену: делает шпаргалки к билетам, прогоняет тестово весь экзамен. На каждую шпаргалку уходит от 1 до 8 часов. Он сделал таблицу с описанием работ и оценкой трудозатрат. Заносит выполненные работы в столбец «дата завершения».<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/blog.fossko.ru\/pictures\/----(Burn-Down-Chart)---Google----Opera-2020-06-24-15.36.44.jpg\" width=\"477\" height=\"435\" alt=\"\" \/>\n<div class=\"e2-text-caption\">Таблица с исходными данными. Рекомендация: самая высокозатратная задача не должна быть больше в 10 раз чем самая малозатратная, в примере задачу по шпаргалке 14 билета разделили на три подзадачи.<\/div>\n<\/div>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/blog.fossko.ru\/pictures\/----(Burn-Down-Chart)---Google----Opera-2020-06-24-15.39.58.jpg\" width=\"781\" height=\"555\" alt=\"\" \/>\n<div class=\"e2-text-caption\">При помощи формул, получаем таблицу, по которой можно построить диаграмму.<\/div>\n<\/div>\n<div class=\"e2-text-picture\">\n<div class=\"fotorama\" data-width=\"331\" data-ratio=\"0.89945652173913\">\n<img src=\"https:\/\/blog.fossko.ru\/pictures\/----(Burn-Down-Chart)---Google----Opera-2020-06-24-15.41.48.jpg\" width=\"331\" height=\"368\" alt=\"\" \/>\n<img src=\"https:\/\/blog.fossko.ru\/pictures\/----(Burn-Down-Chart)---Google----Opera-2020-06-24-15.42.34.jpg\" width=\"385\" height=\"357\" alt=\"\" \/>\n<\/div>\n<div class=\"e2-text-caption\">Очень удобно использовать именованные диапазоны. Тогда в формулах можно ссылаться на имя диапазона, а не на ячейку. Рекомендую вначале именованного диапазона ставить одинаковый символ, тогда вы быстро сможете найти нужный диапазон. Я ставлю символ подчеркивание «_»<\/div>\n<\/div>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/blog.fossko.ru\/pictures\/----(Burn-Down-Chart)---Google----Opera-2020-06-24-15.44.23.jpg\" width=\"676\" height=\"463\" alt=\"\" \/>\n<div class=\"e2-text-caption\">В итоге можно построить диаграмму с линией тренда и определить что студент сделает все шпаргалки к 10 августа.<\/div>\n<\/div>\n<div class=\"e2-text-video\">\n<iframe src=\"https:\/\/www.youtube.com\/embed\/PpNFgPCI-XM?enablejsapi=1\" allow=\"autoplay\" frameborder=\"0\" allowfullscreen><\/iframe>\n<div class=\"e2-text-caption\">Ролик в котором Максим очень подробно рассказывает про эту таблицу.<\/div>\n<\/div>\n<p>Таблица <a href=\"https:\/\/docs.google.com\/spreadsheets\/d\/1pFkuikERCdX2x8bX2TWWEUz_Fm4cjiHc2txsTU0qbks\/edit?usp=sharing\">в гугл таблицах<\/a>, не забудьте сделать копию перед правкой.<\/p>\n<p>Таблица из ролика <a href=\"https:\/\/forum.mnogosdelal.ru\/download\/file.php?id=542&sid=e8eb70e3694bee5279c88045d7694ab5\">в экселе<\/a>.<\/p>\n<p>Таблица для <a href=\"https:\/\/yadi.sk\/d\/9o4sIwPVx4h3JQ\">macOS numbers<\/a>.<\/p>\n",
            "date_published": "2020-06-24T15:49:18+03:00",
            "date_modified": "2020-06-24T15:49:07+03:00",
            "tags": [
                "аналитика",
                "проект",
                "эксель"
            ],
            "image": "https:\/\/blog.fossko.ru\/pictures\/----(Burn-Down-Chart)---Google----Opera-2020-06-24-15.36.44.jpg",
            "_date_published_rfc2822": "Wed, 24 Jun 2020 15:49:18 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "57",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [
                    "jquery\/jquery.js",
                    "fotorama\/fotorama.css",
                    "fotorama\/fotorama.js"
                ],
                "og_images": [
                    "https:\/\/blog.fossko.ru\/pictures\/----(Burn-Down-Chart)---Google----Opera-2020-06-24-15.36.44.jpg",
                    "https:\/\/blog.fossko.ru\/pictures\/----(Burn-Down-Chart)---Google----Opera-2020-06-24-15.39.58.jpg",
                    "https:\/\/blog.fossko.ru\/pictures\/----(Burn-Down-Chart)---Google----Opera-2020-06-24-15.41.48.jpg",
                    "https:\/\/blog.fossko.ru\/pictures\/----(Burn-Down-Chart)---Google----Opera-2020-06-24-15.42.34.jpg",
                    "https:\/\/blog.fossko.ru\/pictures\/----(Burn-Down-Chart)---Google----Opera-2020-06-24-15.44.23.jpg",
                    "https:\/\/blog.fossko.ru\/pictures\/remote\/youtube-PpNFgPCI-XM-cover.jpg"
                ]
            }
        }
    ],
    "_e2_version": 4171,
    "_e2_ua_string": "Aegea 11.4 (v4171)"
}