Скрипт собора ФИО и фотографий сотрудников и студентов ВШЭ МИЭМ.
Для работы программы требуется установить все зависимости.
Для установки зависимостей необходимо установить pip и установить зависимости командой:
pip install -r requirements.txt
photo \
logs \
log.log
photo \
main.py
README.md
config.ini
requirements.txt
simple.png
При запуске основного скрипта main.py создается деректория logs и файл для сохранения логирования log.log
Скрипт main.py реализует основные функции адаптера. На данный момент скрип собирает только фотографии сотрудников. Сбор изображений студентов не реализован.
config.ini - конфигурационный файл содержащий пароль, логин и адресс к базе данных проекта цифровой след сбор данных.
Для Для удобного взаимодействия в адаптере используется mongoengine, специальный пакет позволяющий создать модели данных в формате классов, указав в них типы хранимых данных и другую информацию. На данной момент в рамках этого скрипта существует всего один класс mongoengine - Person:
class Person(Document):
meta = {"collection": "photo"}
numb = IntField()
name = StringField()
photo_url = URLField()
image = ImageField()
meta - параметр отвечающий за местоположение класса при сохранении. В данной ситуации - колекция photo. При работе с базой данных необходимо знать, что автоматически создаются 2 дополнительные коллекции: images.chunks и images.files. Там и хранятся фотографии.

name - поле отвечает за ФИО сотрудника. Формат хранения: строка.
photo_url - поле содержит url, из которого была взята фотография.
image - поле хранит изображение сотрудника.
В данном скрипте используются 3 функции.
mass_to_class(mass) - функция преобразования словаря Python в класс mongoengine. На вход принимает словаря Python, на выходе получаем экземпляр класса Person. Данный экземпляр уже сохранен в бд.
scraper() - функция собирающая фотографии и ФИО с офицального сайта ВШЭ МИЭМ. На вход не принимает ничего. Отдает массив экземпляров класса Person. Для каждого сотрудника вызывается функция mass_to_class(mass).
cleaner(mas) - функция, проверяющая на дубликаты записей и удаляющая их из бд. На вход принимает массив экземпляров класса Person, на выходе получаем массив экземпляров класса. Данные экземпляры не имеют дубликатов в этом массиве. Если были надены повторения, они удаляются из базы данных в ходе работы скрипта.