27

Парсим и анализируем ре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

Правила сообщества

Обязательно к прочтению для авторов:

1. Если вы добавляете пост, утверждающий об утечке данных или наличии дыр в системе, предоставьте ссылку на источники или технически подкованное расследование. Посты из разряда "Какой-то банк слил данные, потому что мне звонили мошенники" будут выноситься в общую ленту.
2. Все вопросы "Как обезопасить сервер\приложение\устройство" - в лигу "Компьютер это просто".

Обязательно к прочтению для всех:

Добавление ссылки разрешено если она не содержит описание коммерческих (платных) продуктов и/или идентификаторов для отслеживания перехода и для доступа не нужен пароль или оплата в т.ч. интернет-ресурсы, каналы (от 3-х тематических видео), блоги, группы, сообщества, СМИ и т.д.


Запрещены политические holy wars.

По решению модератора или администратора сообщества пользователь будет забанен за:

1. Флуд и оскорбление пользователя, в т.ч. провокация спора, флуда, холивара (высказывание без аргументации о конкретной применимости конкретного решения в конкретной ситуации), требование уже данного ответа, распространение сведений порочащих честь и репутацию, принижающих квалификацию оппонента, переходы на личности.

2. Публикацию поста/комментария не соответствующего тематике сообщества, в том числе обсуждение администраторов и модераторов сообщества, для этого есть специальное сообщество.

3. За обвинение в киберпреступной деятельности.

4. За нарушение прочих Правил Пикабу.