В этой лабораторной вам предстоит работать со списками, полученными в результате разбора веб-страниц. Для этих целей используются библиотеки FSharp.Data и *-conduit. Они позволяют изящно разбирать и запрашивать данные из таких иерархических структур как json, xml, html. В нашем случае мы будем работать с html-страницами, запрашивать содержимое тэгов с помощью селекторов и получать нужные нам данные в последовательностях и списках соответственно.
Примеры работы с библиотеками для каждого из языков находятся в соответствующих boilerplate-файлах: Lab2.fs и Lab2.hs. И в интернете: FSharp.Data, html-conduit
Через NuGet: Install-Package FSharp.Data
. Или через nuget-плагин для monodevelop.
С использованием cabal: cabal install xml-conduit http-conduit html-conduit
Вполне вероятно, что некоторые страницы будут парситься некорректно, данные будет сложно извлечь, возникнут проблемы с кодировкой. Все эти и другие вопросы, как обычно, задавайте в issue.
Вариант | Задание |
---|---|
1 | По списку языков программирования википедии составить список императивных, не функциональных ЯП. |
2 | По списку языков программирования википедии составить список кортежей: год появления, названия. Языки без указания годов появления исключить. |
3 | По списку телефонных номеров МФТИ выяснить, кто делит один номер с коллегами. Телефонные номера нормализовать |
4 | Узнать, в каком году было больше и меньше всего выпускников факультета аэромеханики и летательной техники |
5 | Составить список 50 самых умных и самых строгих преподавателей |
6 | Составить список из ФИО преподавателей и их страниц в соц.сетях (linkedin, facebook, vk) |
7 | Составить список выпускников ФИВТ, которые любят КВН |
8 | Составить список 50 самых комментируемых преподавателей |
9 | Составить список 50 комментариев для преподавателей с самой высокой оценкой |
10 | Найти средний возраст участников студсовета ФИВТ |
11 | Отсортировать список git-проектов Haskell, которые проходят тесты на Travis CI по количеству веток |
12 | Выяснить, какой процент из топ-500 проектов на языках Haskell и F# на github с наибольшим количеством звёзд составляют проекты на F# |
13 | Составить частоту обновлений проектов на F# на github (в течении последнего месяца, двух, и т.д.) |
14 | Узнать, от какой библиотеки зависит больше всего запрещённых пакетов на hackage |
15 | Найти пять самых скачиваемых пакетов за всё время на hackage |
16 | Какой процент составляют issue с комментариями от общего количества issue для NuGet? |
17 | Какое количество разработчиков NuGet уже переехали на github, если судить по их никам? |
18 | Кто из разработчиков Microsoft на github ведёт блог на blogs.msdn.com и указал его в профиле? |
19 | Попытаться найти по списку языков программирования википедии человека, который разработал больше всего ЯП |
20 | Какое количество ссылок на странице о LISP ведут на англоязычные ресурсы, а какие - на русскоязычные? |
21 | Под какой лицензией выпущено большинство проектов на F# на github, если судить по файлу LICENSE? |
22 | Сколько пакетов в Hackage относятся к нескольким категориям? |
23 | У какого факультета ФИВТ больше всего кафедр? |
24 | Сколько музыкальных групп всего с одним треком находится в чарте last.fm top100 композиций по РФ? |
25 | Какие группы появлялись в чартах last.fm с 2008 по 2013 года (исключая 2012) больше всего раз? |
26 | Кто, кроме anonymous'а оставил больше всего комментариев в этой теме? |
27 | Какой тэг самый популярный среди ста самых популярных пакетов на NuGet? |
28 | В каком месяце какого года было больше всего вопросов в рассылке эрланга? |