Terrible59 / vuz-parser

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Поисковик информации о ВУЗах и их лицензиях

Выполнили студенты группы 211-331:

Кубалов Павел

Скрыпник Василий

Коржов Арсений

Описание

Этот проект представляет собой инструмент для сбора и систематизации информации о высших учебных заведениях (ВУЗах) и их лицензиях. Скрипт автоматизирует поиск данных на различных сайтах, включая:

  • Единый реестр лицензий: https://islod.obrnadzor.gov.ru
  • Табитуриент.ру: https://tabiturient.ru
  • Google Custom Search API: https://developers.google.com/custom-search/v1

Функционал

Скрипт выполняет следующие действия:

  1. Поиск лицензии: Находит информацию о лицензии ВУЗа в Едином реестре лицензий по его названию. Извлекает данные: ИНН, ОГРН, краткое и полное наименования, решение о предоставлении лицензии, регион и ссылку на страницу лицензии.
  2. Поиск сайта: Определяет URL сайта ВУЗа с помощью Google Custom Search API.
  3. Определение IP адреса и хостинга: Получает IP адрес сайта ВУЗа и информацию о его хостинге через https://ipinfo.io. Извлекает данные: URL сайта, IP адрес, название хостинга и местоположение (страна, город).
  4. Поиск информации о специальностях ИБ: Анализирует сайт "Табитуриент.ру", чтобы определить, есть ли в ВУЗе кафедра информационной безопасности (ИБ) и какие специальности ИБ предлагаются. Извлекает данные: наличие кафедры ИБ ("+" или "-"), список кодов специальностей.
  5. Экспорт данных в Excel: Сохраняет собранную информацию в файл data.xlsx в формате Excel. Файл содержит следующие столбцы: ИНН, ОГРН, Краткое наименование, Полное наименование, Решение, Регион, Ссылка на лицензию, Сайт, IP сайта, Хостинг сайта, Местоположение сайта, Есть кафедра ИБ, Специальности ИБ.

Использование

  1. Клонирование репозитория:
    git clone https://github.com/Terrible59/vuz-parser.git
  2. Установка зависимостей:
    cd vuz-parser
    npm install
  3. Настройка:
    • Создайте файл .env в корневой директории проекта.
    • Добавьте в файл .env следующие переменные окружения:
      • GOOGLE_API_KEY - ваш ключ API для Google Custom Search.
      • GOOGLE_ENGINE_ID - идентификатор вашего поискового движка Google Custom Search.
  4. Запуск:
    npm run start
    Результаты парсинга будут выведены в консоль и сохранены в файл data.xlsx.

Структура проекта

  • src/constants.js: Содержит константы, такие как URL-адреса используемых сайтов.
  • src/handlers:
    • searchLicense.js: Обработчик для поиска лицензии ВУЗа.
    • searchWebsite.js: Обработчик для поиска сайта ВУЗа.
    • searchSpecialty.js: Обработчик для поиска информации о специальностях ИБ на сайте "Табитуриент.ру".
  • src/index.js: Основной файл скрипта, который запускает процесс парсинга.
  • src/utils:
    • ipLookup.js: Утилита для определения IP адреса по доменному имени.
    • jsonToXlsx.js: Утилита для экспорта данных в файл Excel.

Зависимости

  • axios: ^1.7.2
  • cheerio: ^1.0.0-rc.12
  • crawlee: ^3.10.2
  • dotenv: ^16.4.5
  • googlethis: ^1.8.0
  • node-xlsx: ^0.24.0
  • qs: ^6.12.1
  • typescript: ^5.4.5

Лицензия

ISC

Дополнительные замечания

  • Код скрипта написан на JavaScript.
  • Для каждого университета скрипт пытается выполнить все три задачи (поиск лицензии, сайта и специальностей). Если одна из задач завершается неудачно, результат для этой задачи будет пустым.
  • Скрипт использует таймаут 2 секунды между запросами к сайтам, чтобы избежать блокировки.

Дальнейшее развитие

  • Возможность добавления новых источников данных.
  • Более гибкая настройка параметров поиска (например, выбор региона).
  • Разработка графического интерфейса пользователя (GUI).

About


Languages

Language:JavaScript 100.0%