You are on page 1of 19

Република Македонија

Универзитет „Св. Кирил и Методиј” во Скопје


Факултет за информатички науки и компјутерско инженерство – Скопје

 „Агрегација и обработка на податоци за спортска прогноза“

Ментор: Изработил:
Проф. Др. Ана Мадевска Богданова Деан Атанасовски

Скопје, 2014
Тема „Агрегација и обработка на податоци за
спортска прогноза “
Автор Деан Атанасовски
Научна област Информатика
Датум на одбрана

Ментор Проф. Др. Ана Мадевска Богданова


Редовен професор на ФИНКИ

Членови на комисија Проф. Др. Ана Мадевска Богданова


Редовен професор на ФИНКИ

________________________
Редовен професор на ФИНКИ

__________________________
Асистент на ФИНКИ
Содржина:
Вовед...............................................................................................................................................4
Превземање на податоци од веб (Web scraping)........................................................................5
Agility Pack...................................................................................................................................5
Quartz.NET...................................................................................................................................6
Visual Studio................................................................................................................................7
Опис на системот кој е предмет на обработка...........................................................................8
Опис на податоците...................................................................................................................8
Податоци кои ги генерира апликацијата.................................................................................9
Опис на базата..........................................................................................................................10
Користење на програмата...........................................................................................................12
Програмска логика.......................................................................................................................14
Превземање на државите – региони.....................................................................................14
Превземање на лиги на државите.........................................................................................16
Заклучок........................................................................................................................................18
Користена литература:................................................................................................................19
Вовед

Предметот на оваа дипломска работа е собирање анализата и трансферот на податоците


кои се јавно достапни во HTML форматпретходно генерирани, нивно прилагодување,
агрегација и приказ во соодветна форма. Конечна цел на проектот е прикажување и
анализа на движењата на коефициентите во временски домен за секој натпревар. Тоа
подразбира онлајн аквизиција на податоците во одреден временски интервал. Предметот
на темата е реализиран на тематиката спортска кладилница, чиј предмет е која во
моментот е многу актуелена во светот.
Тоа значи селектирање на одреден спорт, соодветна лига на натпревари и место (на
државно ниво) на одржување на натпреварот, а по автоматизам се подразбира и следење
на текот на условите за кладењеобложување до моментот на почетокот на соодветниот
натпревар.
Во конкретниот случај избран е фудбалот како спорт, лигите кои се актуелни во Европа и
светот, за соодветните коефициенти, за погоден точен резултат за секој фудбалски
натпревар. КладењеОбложувањето се врши онлајн (во живо) и како пример е избрана
кладилницата Sportingbet. Резултатите се прикажуваат во соодветна графичка форма.
Треба да се напомене дека поради големината на обемот на сите можни детални услови
на кладба, овој проект, како иницијален, се фокусира само на најелементарниот услов на
кладбата во фудбалот, а тоа е типот еден, нула и два. Земањето во предвид на останатите
улсови не донесува никаква клвалитативна разлика во проектното решение, туку само го
мултиплицира обемот на проектот и тоа ке биде цел и основа на изработка на некој
нареден проект на оваа тематика.
Во оваа тема за решавање на поставената задача се применети најсовремените
информатички технологии како на пример: Веб платформа како извор на податоци,
MSsSql како база на податоци во која се чуваат податоците во соодветна форма, ASP.NET
за превземање на пдоатоците од веб сајтот на кладилницата Sportingbet, chart од visual
studio, за агрегирање на приказот на обработените податоци. Сите овие пакети се
користени како информатичка подршка за решавање на поставената задача. Тие се во
верзии на напредната информатичка технологија.
Превземање на податоци од веб (Web scraping)

Web scraping преставува превземање на податоците од веб сајт со помош на компјутерски


програм, технологија која се користи од страна на повеќето интернет пребарувачи. Целта
на web scraping е превземање на податоци од веб пред се во HTML формат, нивна
обработка односно прилагодување и складирање во база на податоци, exel документ, xml
и сл. Web scraping преставува веб автоматизација на човечките пребарувања на интернет,
за превземање на одредена информација односно замена на copy paste. Со ваквиот
начин на превземање на податоците можеме лесно да следиме дали одреден податок
има промена кој ќе ни послужи за анализа, споредба и сл, така на пример доколку ги
превземеме коефициентите на онлајн обложувалница во различни интервали до почеток
на натпреварот ке имаме информација какво било нивното движење, или на пример
превземање на цени од онлајн продавници и нивна споредба.

Слика 1, шема на web scraper

Agility Pack

Agility pack е динамичен HTML parser кој прави читање и запишување на DOM, кој
подржува XPATH или XSLT (Кој се неопходни да се познаваат). Тоа е .NET библиотека која
овозможува парсирање HTML. Овој парсер е многу флексибилен со не соодветно
структурирани HTML страни.
Примена:

 Html Agility Pack овозможува да парсира одредени делови, промена на DOM,


додавање на јазли, копирање на јазли и слично.
 Html Agility Pack исто така овозможува лесно да ги превземете податоци како што
се слики, линкови.
 Сите направени превземања на податоците од одреден веб сајт како извор може
да зачувате во база, или да креирате RSS читач, exel, xml и слично.

Quartz.NET

Quartz е систем кој се извршува во одреден временски период. Тој може да биде
интегриран во софтвери каде има потреба од извршување на одредени софтверски
компоненти во одредено време. Quartz е лесен за конфигурирање, отпорен на
грешки од едноставни до сложени апликации. При негова имплементација мора
да биде имплементиран интефејсот IJob кој ја содржи методата Execute().

Џоб - от започнува да работи од моментот кога ке започне да работи тригер - от, кој
може да функционира на следниве начини:
 Различни денови од неделата
 Различни денови од месецот, годината
 Да трае безконечно
 Со мануелно зададени ден, месец, час, минута и сл.

Џоб – от содржи име и група кои се креираат од страна на корисникот, исто така
соодветно и тригер – от содржи име и група што на еден начин се организирани и
лесни за промени доколку е потребно. Џоб- от може да биде содржан во еден или
повеќе тригери.
Visual Studio

Visual Studio .NET е сет од алатки за градење на ASP веб апликации, XML веб сервиси,
десктоп апликации и мобилни апликации. Visual Basic .NET, visual c++ .NET, visual c#, I visual
j# .NET кои користат развојна околина (IDE), овозможуваат споделено користење на
алатките олеснувајки ја работата со користење на микс од јазици.

Web Form

Web Form е ASP.NET технологија за градење на програмибилни веб страни. WEB Form
апликациите генерираат HTML код при што може да се пристапат од сите прелистувачи и
платформи. Користењето на Web Form овозможува креирање на веб апликација со
повлечи и пушти (dragging and dropping) благодарение на вградените контроли и
дизајнер.

Користени контроли во проектот:

 Контрола за цртање на графикони – оваа контрола ми послужи за исцртување на


коефициентите за домаќин, нерешен резултат, и гостин. На X оската е поставено
времето на превземање на податоците а на Y оската се прикажани коефициентите.
 Контрола за поврзување со база на податоци – SqlDataSource со чија помош може
да читате податоци, внесувате податоци, менување на веке постоечки податоци и
бришење на податоци
 Прикажување на податоците во опаднувачка листа – DropDown со помош на оваа
контрола ги читаме сите потребни податоци од базата на податоци.
Опис на системот кој е предмет на обработка

Предмет на обработка е сајтот на кладилницата Sportingbet. Кладилницата се однесува на


повеке видови спортови како на пример: фудбал, крикет, тенис, коњски трки, мото трки,
бокс, голф и други. Во принцип било кој од спортовите има иста методологија на
кладењеобложување, а тоа е погоден резултат, коефициент на добивката, време на
почетокот на натпреварот, како и движење на коефициентот во одредени временски
интервали. Сите овие податоци се ажурираат на веб сајтот на спортската кладилница.

Тоа значи дека клиентот во било кое време до почетокот на наптреварот може да се
клади на одреден меч од било кој спорт, при тоа земајки го во предвид коефициентот кој
е актуелен во моментот на кладбата. КладењеОбложувањето се затвара во моментот на
почетокот на натпреварот или на одредено време пред почетокот доколку е така
пропишано. За соодветен влог и погоден резултат клиентот добива износ на вложените
пари помножен со коефициентот на вредноста на резултатот.

Опис на податоците

Податоците кои се предмет на екстракција се: регион (држава) – локација каде се


одржува натпреварот, лига на натпреварување - тоа е организационата структура на
натпреварувањето. Една држава за еден спорт може да има една или повеке лиги на
натпреварување. Натпреварувачки пар (натпревар), натпреварот се однесува на две екипи
од кој првата е домакин, а втората е гостин на натпреварот. Коефициент на вредност за
погоден исход на натпреварот (победа на домакинот, нерешен резултат и победа на
гостинот). Време на почеток на натпреварот, е време на ново превземање на
коефициентот. Податоците кои се превземаат се прилагодуваат соодветно со полињата во
базата, коефициентите, името на лигата, државата. Така на пример доколку содржи не
потребно празно место тоа се одстранува. Доколку се појават знаци кои се
непрепознатливи, тогаш тие се претвараат во препознатливи знаци (претварање се состои
со активирање на декодна наредба).
Од веб сајтот на sportingbet се превземаат следните податоци:

 Држава (регион) – Тоа се сите држави или региони во кој има лига на фудбалски
натпревари.
 Фудбалска лига – Тоа се сите натпревари во едно натпреварување.
 Фудбалски тим – Тоа се сите учесници во натпреварувањето во фудбалска лига на
една држава (регион)
 Фудбалски мечови – Натпревар мегу два тима во одредена фудбалска лига.
 Време на почеток на натпреварот – Времето кое се превзема е почеток на
натпреварот и преставува крај на можноста за кладба. Времето преставува локално
време (Источно австралиско време).
 Коефициенти – Тоа се соодноси на добивката во однос на вложените пари во
кладбата во случај на погоден резултат. Коефициентите се однесуваат за
фудбалските натпревари за победа на домашен тим, победа на гостинот и нерешен
резултат на мечот. Коефициентите за време на кладбата може да се менуваат.

Податоци кои ги генерира апликацијата

Податоците кои се генерираат всушност преставуваат архива на погорните податоци кои


служат за одредени прикази за движењето на коефициентите во тек на временските
пресеци. Временските пресеци може да се фиксираат за одреден период или тој период
да се менува (во програмското решение се прави со интервенција во кодот), за
натамошна разработка може оваа промена да биде изборна на секој клиент. Тоа
предизвикува потреба за нова концепција односно конфигурирање на quartz.net.

Архивирањето на податоците е автоматски и нивното бришење е можно со интервенција


во базата на податоци.
Опис на базата

Податоците се организирани во база на податоци. Организацијата на податоците се


базира на MsSql 2008 платформа. Базата се состои од 5 поврзани табели прикажани на
сликата подолу.

Слика 2, Шема на базата на податоци


Табела спорт – Оваа табела се однесува на типот на спорт (фудбал, тенис, ракомет,
кошарка, трка со коњи итн) во мојот случај фудбал е земен како предмет на обработка од
веб сајтот на sportingbet.com.au. Табелата е додадена со цел во иднина да се напправи
превземање на податоци и на останатите спортови од веб сајтот.

Табела држави – Табелата држави ги содржи сите држави или региони кој што содржат
одредени лиги.

Табела лига – Во табелата лига ги чуваме сите лиги кој се од одредена држава – регион.

Табела натпревар – Во табелата натпревар ги чуваме натпреварите односно тим домаќин


и тим гостин од одредена лига, кој ги превземаме од веб сајтот (слика 3 број 3). Табелата
содржи сложен клуч (bettime, domakin) bettime е времето на почеток на натпреварот кое е
во соодветен формат, и како втор клуч е домаќинот со цел да не настане повторување на
податоците. Исто така се чува и податок на кој спорт припага натпреварот.

Табела коефициенти – Во табелата коефициенти ги чуваме вредностите за победа на


домаќинот, победа на гостинот или нерешен резултат на мечот на соодвтен натпревар. Во
табелата се чува и податок за кога е превземен податокот од веб сајтот на кладилницата
Врз основа на сите пресеци направени може да имаме исти или различни вредности на
коефициентите.

Слика 3, Поглед на веб сајтот на www.sportingbet.com.au


Користење на програмата

За решение на системот е користена asp.netASP.NET, NET Framework 4.0 технологија, и


Visual Studio 2013 како алатка за изработка.

Во ова софтверско решение кирисникот може да пристапи преку пребарувач на соодветен


домеин или ip адреса каде што би била поставена веб апликацијата. На примерот е
прикажана апликацијата која работи на Localhost (Слика 4).

Слика 4, приказ на апликацијата

Корисникот има можност да избере листа на понудени држави – региони, потоа му се


овозможуваат соодветните лиги за државата или регионот кој претходно ги избрал. Од
соодветната лига може да се види листа на натпревари кој се расположливи за кладба.
Коефициентите на кладба може да бидат следени во одреден временски интервал.
Менувањето на нивните вредности се прикажува графички со секој временски пресек.

Промената на коефициентите во тек на времето се превзема од веб сајтот и тие


преставуваат актуелни вредности, актуелните вредности на коефициентите се до
почетокот на натпреварот. Следен чекор е избор на лига при што во следната листа ке му
бидат достапни сите натпревари за избраната лига.

Доколку се избере завршен натпревар тогаш корисникот пристапува кон архивираните


податоци. Во продолжение на листата со натпревари се прикажува времето и денот на
почеток на натпреварот.

Операцијата за стартување на времето на превземање на податоци и завршување на тоа


време се обезбедува преку административна функција која се активира со копчето
GetData. Откако ке биде најавен (Слика 5) се отвара нов прозорец (Слика 6) во кој имаме
две копчиња старт и стоп. Копчето старт преставува почеток на превземање на

Слика 5, најава на корисници

податоците од кладилницата, а со притискање на копчето стоп го запираме превземањето


на податоци. Потоа програмот автоматски ги превзема податоците од веб сајтот во
одреден временски интервал. Во иднина може да се направи избор на временскиот
интервал на превземање на податоците.
Слика 6, администратор на веб апликација

Програмска логика

Најпрвин го превземаме линкот фудбал од категориите со спорт на кладилницата, потоа


со помош на на WebClient класата го превземаме Page source кодот од веб сајтот на
sportingbet.com.au.

Превземање на државите – региони

Откако го имаме page source кодот започнуваме со читање на HTML елементи, најрвин ги
вчитуваме HTML тагот каде се наогаат државите (слика 8), кој започнува од <ul class="list
link-list horz swiper-wrapper"> до </ul> движејки се од почетокт на тагот и негово
затварање вршиме превземање на стрингови кој се наогаат во одредени под тагови
(слика 7).
Слика 7, тагови со име и линковите на државите

Во овој таг се наоѓаат сите држави – региони со нивно име и линк кој ги чуваме во листа,
со цел понатаму да може да го искористиме за внесување во базата на податоци и
проверка која лига во која држава припага.

Името на државата го превземаме за да го прикажеме во веб апликацијата. Вносот на


податокот се прави со помош на процедури во апликацијата.
Слика 8, Source code sportingbet.com.au

Превземање на лиги на државите

Со оваа функција се врши превземање на лигата која е дефинирана во соодветна држава,


врз основа на листата во која ги чуваме линковите ги превземаме лигите од соодветната
држава. Во тој линк може да има една или повеке лиги при што го превземаме името на
лигата и линк на лигата во кој се содржани одредени натпревари. Со тоа се овозможува
можност за селекција на натпревар.
Слика 9, source кодот за лиги

Последниот чекор е фокусирање на одреден натпревар со одредено време на


превземање на коефициентот, како и времето на почеток на натпреварот. Понатаму во
одреден временски интервал се прави нов упит на source кодот и повлекување на нова
вредност на коефициентот.

Податоците за коефициентот се запишуваат во табелата коефициенти. Активирањето на


превземањето на коефициентот се прекинува во моментот кога времето на почеток на
натпреварот е помало од тековното време (натпреварот е веќе започнат).

Сите овие складирани податоци може да се прикажат во најразлични форми (линии,


столбови и слично). Во овој проект за најсоодветен начин за приказ на промените на
вредностите на коефициентите во тек на времето за кладба е во форма на графикон
(линии) кое соодветно е прикажано на слика 3.
Заклучок

Целта на проектот е да се олесни работата во превземањето на податоци од одредени


веб сајтотви за понатамошна обработка, анализа, складирање и слично. Предноста од
користењето е заштеда на време, број на вработени кој би правеле мануелно превземање
на веб содржината а со тоа и заштеда на средства. За реализација на проектот се
потребни компјутер со инсталиран Windows server 2008 R2 оперативен систем или понови
верзии, MsSql сервер 2008 R2 база на податоци или понови верзии, инсталирано IIS
модул. Недостаток на понуденото проектно решение е неговата осетливост на
програмските промени на веб сајтот од каде што се превземаат податоците. Во тој случај
мора да се направат одредени софтверски прилагодувања според промените од веб
сајтот. Тоа значи треба да има непосредна комуникација помеѓу менаџерите на софтверот
на двете страни.

Овој проект преставува основен прототип во основна верзија на еден проект од пошироки
размери во кој треба да бидат опфатени сите спортови кој се наогаат на веб сајтот на
sportingbet.com.au и кој треба да ги содржи посебните подтипови на кладби специфични
за различни спортови, како и многу побогата и поисцрпна анализа на историјатот на
кладбите во зависност од потребите на одделни спортови, тоа ќе преставува посериозен
зафат. Посебно внимание ќе треба да се посвети на брзината на обработката на
податоците во зависност од бројот на активни клиенти.

Во наредниот период ќе треба детално да се анализира улогата на администраторот и


неговите привилегии.
Користена литература:

1. http://en.wikipedia.org/wiki/Web_scraping
2. http://msdn.microsoft.com/en-us/vstudio/aa718325.aspx
3. http://htmlagilitypack.codeplex.com/
4. http://www.quartz-scheduler.net/documentation/index.html
5. Professional Visual Studio 2012, Bruce Johnson

You might also like