XFetcher

XFetcher

На Пикабу
124 рейтинг 1 подписчик 0 подписок 1 пост 0 в горячем
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

Показать полностью 11
Отличная работа, все прочитано!