Парсим и анализируем реecтр блогеров на сайте РКН
Всем привет. Я работаю над своим сервисом для сбора данных, мониторинга разных сайтов и СМИ, и мне стало интересно, можно-ли получить список блогов, зарегистрированных в РКН.
Что из этого получилось - ниже. (Спойлер: больше всего блогов зарегистрировано в VK).
На сайте РКН существует форма, где можно проверить, включён ли блог в реестр. Находится она тут: https://knd.gov.ru/licenses-registry и выглядит примерно так:
Если открыть DevTools, то видно, что запрос на сервис выглядит так:
А ответ так:
Можно увидеть, что:
В запросе есть несколько полей для фильтра (тип соц сети, название блога, статус).
В запросе поля page, size.
В ответе есть дополнительные данные, которые не отображаются на странице, а именно, ссылка на страницу, дата регистрации, и прочее.
В ответе поле content подразумевает, что может быть несколько записей, а не одна.
Из этого можно попытаться сконструировать запрос, в котором будут другие фильтры (параметры поиска) и другие параметры (чтобы вернуть не 1 запись, а несколько).
Немного поиграв с параметрам поиска удалось получить результат:
Видно, что dateCreation здесь 07.11 (запуск реестра), а количество элементов 131 586, т.е. скорее всего по этим фильтрам мы получили первую запись, а все остальные в этом запросе на следующих страницах.
Теперь можно попробовать увеличить параметр size.
1 -> 10 -> 100 -> 1000 работает! (больше - уже не работает).
И всего получается 132 страницы
Пробуем увеличивать параметр page -> 1,2,3 - Работает.
После 9й падает. Видимо, стоит ограничение на 10 000 результатов.
Тогда стоит попробовать разбить результаты так, чтоб по фильтрам было не больше 10к результатов.
Вернувшись к запросу можно заметить, что структура фильтра запрос совпадает со структурой записи в ответе.
В запросе фильтр: "bloggersRegistrationRegistry.BlogInformation.blogTitle", и в ответе, в объектах внутри content путь по вложенности ровно такой-же: bloggersRegistrationRegistry -> BlogInformation -> blogTitle
На верхнем уровне status тоже совпадает. Тогда мы можем попытаться соорудить фильтр по полю, которое может быть разным, но не слишком.
В ответе есть dateCreation, и это идеально подходит, т.е. мы можем сформировать фильтр по дате.
Ставим дату 01.01.2025, проверяем -> работает.
Теперь можно написать скрипт, чтобы пробежать по всем датам, начиная с даты открытия реестра, и если в ответе больше 1000 результатов, то пробежать ещё по всем страницам с этой же датой.
Пара сотен запросов - и получено 131 586 ссылок на странички.
Теперь можно посмотреть, а где-же больше все блогов зарегистрировали?
Я думал, в телеге, но нет, сюрприз - VK!
А если взять график по датам - то можно увидеть, что в январские праздники никто почему-то не регистрировал свои странички :(
А у вас есть идеи от чего ещё зависели пики на графике регистраций?
Спасибо за внимание.
P.S. Если интересна тематика сбора и обработки данных - комментируйте, напишу ещё.
Eсли нужна помощь в сборе, анализе данных и мониторинге - xfetcher
UPD:
Контакт: t.me/xfetchai