0.0.241 • Published 4 years ago

get-data-pkgh v0.0.241

Weekly downloads
23
License
GNU-3.0
Repository
github
Last release
4 years ago

get-data-pkgh

Получение данных с сайта колледжа Скрапинг + парсинг на nodejs


Быстрый старт

npm install get-data-pkgh
    const DataPkgh = require('get-data-pkgh');
    const pkgh = new DataPkgh();
    pkgh.getSchedule().then((r) => r.toArray()).then(console.log)
  // Вывод расписание

Инициализация

Аргументы: logLevel - уровень логгирования данных (log, warn, error, debug) load - загрузка данных из другого источника. Ключ может быть как шаблоном(schedule, teacher) так и absolute url. При установки аргумента load подключения к интернету не будет!

  const DataPkgh = require('get-data-pkgh');
  const load = {
    'schedule': fs.readFileSync('./schedule.html'),
    'https://pkgh.edu.ru/obuchenie/teachers.html?start=00': fs.readFileSync('./first-teacher.html'),
  };
  const logLevel = 'debug';
  const pkgh = DataPkgh({load, logLevel});

Генерация индификатора

Позволяет получить хеш сумму на основе строки убирая спец символы. Аргументы: str - База hash - boolean value. Включение md5 хеширование конечной строки.

  const generateId = require('get-data-pkgh').generateId;
  console.log(generateId('МР-18-6', false));
  // => 'MR186'

Расписание

Получить весь список в виде массива

    pkgh.getSchedule().then((r) => r.toArray()).then((r) => console.log(r));

Структура данных расписания

{
  ID: Индификатор группы {
    name: Имя группы
    specialty: Специальность группы
    table: Массив дней расписания [
      dayWeek: День недели
      lesson: [
        {
          numSubject: Предмет по числителю,
          numTeacher: Преподователь по числителю,
          denSubject: Предмет по знаменятилю,
          denTeacher: Преподователь по знаменатилю,
        }
        ...
      ]
      ...
    ]
  }
  EE1934kz: {
    table: [ [Object]  ],
    name: 'ЭЭ-19-34кз',
    specialty: 'Информация Заочного отделения'
  },
  YuS1731kz: {
    table: [ [Object]  ],
    name: 'ЮС-17-31кз',
    specialty: 'Информация Заочного отделения'
  },
  ...
}

Получить конкретную группу

При получении конкретной группы будет загружена и обработана вся страница колледжа

  const generateId = require('get-data-pkgh').generateId;
  pkgh.getSchedule((r) => r.firstIndex('id')).then((r) => { console.log(r[generateId('МР-18-6')]) })

Раздел преподаватели

Получение всех постов

Будет загружено ~10 страниц с сайта колледжа

  pkgh.getTeacher().then((r) => console.log(r));

Структура данных раздела преподаватели

[
  {
    id: Индификатор,
    text: Текст к посту,
    author: {
      text: ФИО автора,
      link: Ссылка на автора,
    },
    time: Время публикации,
    tag: {
      text: Текст тега,
      link: Ссылка на все посты с данным тегом,
    },
    downoload: [
      {
        link: Ссылка на скачивание,
        text: Текст ссылки,
      },
      ...
    ]
  }
  ...
]
0.0.241

4 years ago

0.0.24

4 years ago

0.0.21

4 years ago

0.0.2

4 years ago

0.0.188

4 years ago

0.0.186

4 years ago

0.0.185

4 years ago

0.0.184

4 years ago

0.0.180

4 years ago

0.0.171

4 years ago

0.0.17

4 years ago

0.0.16

4 years ago

0.0.153

4 years ago

0.0.152

4 years ago

0.0.151

4 years ago

0.0.14

4 years ago

1.0.13

4 years ago

1.0.12

4 years ago

1.0.11

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago