Репозиторий автоматизированного парсинга (командный проект)

Материал из Wiki - Факультет компьютерных наук
Версия от 15:59, 23 августа 2017; Ilya Kuzminov (обсуждение | вклад)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск
Компания ИСИЭЗ НИУ ВШЭ
Учебный семестр Осень 2017
Учебный курс 3-й курс
Максимальное количество студентов, выбравших проект: 3-5



Что это за проект?

Это проект по созданию единого репозитория для автоматизированного парсинга сайтов одной тематики, с целью дальнейшего использования извлеченной информации в аналитике и прогнозах. С сайтов должны быть извлечены все максимально полезные метаданные о публикациях, статьях, грантах и т.п., например, время создания, авторство, категория, теги и т.п. параметры. Извлеченные данные должны будут автоматически загружены унифицированном для всех их источников формате в облачное хранилище в виде таблиц баз данных (мы используем PostgreSQL). Задача по извлечению изначально может показаться достаточно простой, но на практике это далеко не так. В случаях с некоторыми сайтами можно будет применить инструменты разработанного у нас фреймворка на базе Scrapy для извлечения данных. Однако, скорее всего, придется работать также с такими инструментами как Selenium.

В итоге у команды, работающей над этим проектом, должен будет получится набор скриптов-парсеров, осуществляющих задачи, собственно, парсинга, а также загрузки данных в БД, запускаемых в рамках единого проекта (т.е. так, чтобы обработка группы сайтов могла быть запущена единой командой управления, без ручного вмешательства разработчиков).

Чему научатся студенты? Что самое интересное в проекте?

Анализировать и приводить к стандартному виду большие объемы совершенно разрозненных данных. Разрабатывать и дорабатывать платформенные механизмы (фреймворки) автоматизированного сбора данных с веб-сайтов. Работать с базами данных, разрабатывать алгоритмы автоматизированного их пополнения, изменения и пр. Работать с облачными сервисами БД (например, AWS). Командной работе (не только с программистами, но и с аналитиками и пр. специалистами). Гибкости ума и прочим навыкам парсинга (т. к. для извлечения некоторых данных приходится использовать весьма нетривиальные пути).

Организация работы (Как студенты будут работать в команде?)

Работа над проектом будет состоять из следующих этапов:

  • Самостоятельное ознакомление с базовыми возможностями основных инструментами и библиотек, используемых для разработки проекта;
  • Ознакомление с разработанным у нас фреймворком; обсуждение возможности использования определенных инструментов на каждой группе сайтов в отдельности;
  • Распределение обязанностей и начало разработки над проектом (тестовое)
  • Консультирование по первому (пробному) этапу работы над проектом, обсуждение проблем (технических, командных и пр.), установка плана работ над проектом (milestones и пр.)
  • Периодическая проверка на соответствие текущего состояния проработанности проекта обозначенному плану.
  • Финальная проверка реализации проекта.

Компоненеты (Из каких частей состоит проект?)

  • Разработанный в ИСИЭЗ фреймворк для извлечения данных (база для создания репозитория);
  • Разработанные самими студентами скрипты-парсеры на основании фреймворка (в случае возможности применения фреймворка для назначенных сайтов);
  • Разработанные самими студентами скрипты-парсеры на основании других библиотек парсинга (в случае не возможности применения фреймворка для назначенных сайтов);
  • Дополнения к фреймворку для обработки неформатных данных, упрощения процесса загрузки в БД и пр., написанные самими студентами, в случае необходимости создания таковых.

Какие будут использоваться технологии?

Python 3, Scrapy, Selenium, PostgreSQL, lxml, Pandas, собственный фреймворк организации на Python + Scrapy для парсинга сайтов Amazon Web Services

Какие начальные требования?

Знание Python на уровне, достаточном для быстрого освоения новых библиотек (для парсинга и пр.). Желательно знание Selenium, lxml, Scrapy или прочих библиотек. Наличие как минимум минимальных компетенций в работе с базами данных (в идеале — опыт работы с PostgreSQL)

Темы вводных занятий

  • Особенности парсинга на Python (в случае, если будут студенты, которые никогда не занимались решением подобного рода задач).
  • Особенности парсинга с помощью библиотеки Scrapy.
  • Особенности нашего фреймворка.

Критерии оценки

0-3: Написанные парсеры не работают или не извлекают большую часть доступных для извлечения данных, или данных извлекаются плохо и не в нужном формате, или распарсено по необъективным причинам менее 50% обозначенных сайтов, а также не организован доступ данных на общее хранилище (сбор данных производился на локальные устройства). Нет возможности проверить код, полностью отсутствуют комментарии и пояснения по проекту. 4-5: Написанные парсеры работают, извлекая все или большую часть доступных данных с сайтов, данные загружаются в правильном формате. По необъективным причинам распарсены не все сайты (до 65%) и некоторая часть данных, доступная для извлечения, не была извлечена или была извлечена неправильно. А также сбор данных производился на локальные устройства или проект написан на плохо читабельном коде, без комментариев. 6-7: Написанные парсеры работают, извлекая все или большую часть доступных данных с сайтов, данные загружаются в правильном формате на единое общедоступное облачное хранилище. Распарсены не все сайты или некоторая часть данных, доступная для извлечения, не была извлечена. В части кода проекта, опирающейся на одни и те же инструменты, присутствует консистентность. В коде присутствуют комментарии, достаточные для его понимания. 8-10: Написанные парсеры работают, извлекая все доступные данные с сайтов, данные загружаются в правильном формате на единое общедоступное облачное хранилище. Распарсены все сайты. В части кода проекта, опирающейся на одни и те же инструменты, присутствует консистентность. Код проекта полностью закомментирован (опуская комментирование встроенных функций, подключение библиотек и пр. очевидные вещи).

Похожие проекты

Контактная информация

Email: ikuzminov@hse.ru

Рабочий телефон: +7(495) 772-9590 доб. 12022