DataSpider (проект) — различия между версиями
Jubbon (обсуждение | вклад) (→Какие начальные требования?) |
|||
(не показано 13 промежуточных версии 2 участников) | |||
Строка 2: | Строка 2: | ||
|name=DataSpider | |name=DataSpider | ||
|mentor=Куликов Дмитрий | |mentor=Куликов Дмитрий | ||
− | |mentor_login={{URLENCODE: | + | |mentor_login={{URLENCODE:Jubbon|WIKI}} |
|semester=Весна 2015 | |semester=Весна 2015 | ||
|course=1 | |course=1 | ||
− | |summer= | + | |summer= |
|categorize=yes | |categorize=yes | ||
+ | |is_archived=yes | ||
}} | }} | ||
Строка 13: | Строка 14: | ||
для обхода тематических сайтов в сети Интернет и извлечения "полезных" данных. Результатом обхода будет являться текстовый файл в формате CSV или TSV, содержащий извлеченные данные. Подобная программа необходима для получения открытых данных в случае, когда на сайте отсутствует возможность использовать API. | для обхода тематических сайтов в сети Интернет и извлечения "полезных" данных. Результатом обхода будет являться текстовый файл в формате CSV или TSV, содержащий извлеченные данные. Подобная программа необходима для получения открытых данных в случае, когда на сайте отсутствует возможность использовать API. | ||
На выбор будут предложены сайты по следующим тематикам: | На выбор будут предложены сайты по следующим тематикам: | ||
− | + | * Прогноз погоды (gismeteo.ru, meteoinfo.ru, hmn.ru, meteoservice.ru, foreca.ru) | |
− | + | * Финансовые показатели и рейтинги банков (banki.ru, bankir.ru, 101bank.net, raexpert.ru, sravni.ru, banks-rating.ru, сайт ЦБ РФ) | |
− | + | * Финансовые показатели и рейтинги страховых компаний (raexpert.ru, insuru.ru, ic-ratings.ru, inguru.ru, sravni.ru) | |
− | + | * Финансовые показатели и рейтинги туристических фирм (firms.turizm.ru, turreestr.ru, tursvodka.ru,tour-info.ru) | |
− | + | * Продажа и аренда недвижимости (cian.ru, realty.dmir.ru, irr.ru, egsnk.ru, gdeetotdom.ru) | |
− | + | * Спортивные соревнования и спортивная аналитика (myscore.ru, news.sportbox.ru, sports.ru, championat.com) | |
− | + | * Экскурсионные предложения (автобусные экскурсии, речные круизы) | |
− | + | * Интернет-магазины (mvideo.ru, mediamarkt.ru, eldorado.ru, 003.ru, enter.ru) | |
=== Чему вы научитесь? === | === Чему вы научитесь? === | ||
Строка 29: | Строка 30: | ||
=== Какие начальные требования? === | === Какие начальные требования? === | ||
− | * желательно наличие | + | * желательно наличие базовых навыков программирования на языке Python |
=== Какие будут использоваться технологии? === | === Какие будут использоваться технологии? === | ||
* Язык программирования Python версии 2.7 | * Язык программирования Python версии 2.7 | ||
− | * Python-пакеты Grab, ScraPy, Selenium Web Driver и другие | + | * Python-пакеты Grab, ScraPy, pyspider, Selenium Web Driver и другие |
* Язык запросов XPath | * Язык запросов XPath | ||
− | * | + | * IaaS платформа Amazon Web Services (в рамках программы бесплатного использования одного экземпляра виртуальной машины на 1 год) |
− | + | ||
− | + | ||
=== Темы вводных занятий === | === Темы вводных занятий === | ||
Строка 46: | Строка 45: | ||
=== Критерии оценки === | === Критерии оценки === | ||
− | + | Оценки '''4-5''': | |
− | + | * утилита обходит только один сайт из выбранной тематики | |
− | + | * повторный запуск приводит к перезатиранию предыдущих результатов | |
− | + | Оценки '''6-7''': | |
− | + | * утилита позволяет обходить два или более тематических сайта | |
− | + | * повторный запуск приводит к накоплению данных в результирующих файлах | |
− | + | * утилита позволяет задавать различные опции командной строки | |
− | + | * разработаны и проходят модульные тесты для большей части кода | |
− | + | * реализовано корректное разграничение стандартных потоков ввода и вывода | |
− | + | Оценки '''8-10''': | |
− | + | * упаковка утилиты в Debian-пакет | |
− | + | * написана небольшая документация в формате Markdown | |
− | + | * настройка cron-задания для периодического запуска утилиты | |
− | + |
Текущая версия на 10:36, 20 октября 2015
Ментор | Куликов Дмитрий |
Учебный семестр | Весна 2015 |
Учебный курс | 1-й курс |
Внимание! Данный проект находится в архиве и реализован не будет. |
Что это за проект?
Задачей проекта DataSpider является реализация консольной утилиты, предназначенной для обхода тематических сайтов в сети Интернет и извлечения "полезных" данных. Результатом обхода будет являться текстовый файл в формате CSV или TSV, содержащий извлеченные данные. Подобная программа необходима для получения открытых данных в случае, когда на сайте отсутствует возможность использовать API. На выбор будут предложены сайты по следующим тематикам:
- Прогноз погоды (gismeteo.ru, meteoinfo.ru, hmn.ru, meteoservice.ru, foreca.ru)
- Финансовые показатели и рейтинги банков (banki.ru, bankir.ru, 101bank.net, raexpert.ru, sravni.ru, banks-rating.ru, сайт ЦБ РФ)
- Финансовые показатели и рейтинги страховых компаний (raexpert.ru, insuru.ru, ic-ratings.ru, inguru.ru, sravni.ru)
- Финансовые показатели и рейтинги туристических фирм (firms.turizm.ru, turreestr.ru, tursvodka.ru,tour-info.ru)
- Продажа и аренда недвижимости (cian.ru, realty.dmir.ru, irr.ru, egsnk.ru, gdeetotdom.ru)
- Спортивные соревнования и спортивная аналитика (myscore.ru, news.sportbox.ru, sports.ru, championat.com)
- Экскурсионные предложения (автобусные экскурсии, речные круизы)
- Интернет-магазины (mvideo.ru, mediamarkt.ru, eldorado.ru, 003.ru, enter.ru)
Чему вы научитесь?
- основным принципам межсетевого взаимодействия по протоколу HTTP
- извлекать различные данные из HTML-страниц с помощью языка запросов XPath и регулярных выражений
- разрабатывать алгоритмы для эффективного обхода множества страниц сайта
- корректно использовать аргументы командной строки, переменные окружения, стандартные потоки ввода и вывода при создании консольных утилит
Какие начальные требования?
- желательно наличие базовых навыков программирования на языке Python
Какие будут использоваться технологии?
- Язык программирования Python версии 2.7
- Python-пакеты Grab, ScraPy, pyspider, Selenium Web Driver и другие
- Язык запросов XPath
- IaaS платформа Amazon Web Services (в рамках программы бесплатного использования одного экземпляра виртуальной машины на 1 год)
Темы вводных занятий
Направления развития
Каждая подобная утилита может рассматриваться как источник данных для проведения статистических исследований и различного рода аналитики. Собранные данные могут использоваться методами машинного обучения для построения различных описательных или предсказательных моделей.
Критерии оценки
Оценки 4-5:
- утилита обходит только один сайт из выбранной тематики
- повторный запуск приводит к перезатиранию предыдущих результатов
Оценки 6-7:
- утилита позволяет обходить два или более тематических сайта
- повторный запуск приводит к накоплению данных в результирующих файлах
- утилита позволяет задавать различные опции командной строки
- разработаны и проходят модульные тесты для большей части кода
- реализовано корректное разграничение стандартных потоков ввода и вывода
Оценки 8-10:
- упаковка утилиты в Debian-пакет
- написана небольшая документация в формате Markdown
- настройка cron-задания для периодического запуска утилиты