Перепрыгнеть в содержание


* * * * * 1 голосов

Объединение усилий по сбору и организации БД по футболу


222 ответов в эту тему

#161 OFFLINE   ScarferUK

    Новичок


  • Участник
  • Пип
  • 19 сообщения
1

Добавлено 19 June 2015 - 08:17

Сообщенияsergei7000, on 19 June 2015 - 08:10, сказал:

Когда пишут "профессионально" , иногда подразумевают , что это не бесплатно . Сперва надо уточнить это ...

В данном случае "профессионально" имеется ввиду, что основная работа по данному профилю.

А идея по созданию такой зрела у меня давно, только одному это все не осилить. Объем работы большой.
Так что именно в конкретном случае объединим общие усилия для достижения общей цели :)

#162 OFFLINE   tester.nt

    Специалист


  • Участник II
  • ПипПипПип
  • 192 сообщения
61

Добавлено 19 June 2015 - 08:46

СообщенияScarferUK, on 19 June 2015 - 08:04, сказал:

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

Ну и следующий, самый главный вопрос, какую именно информацию в ней предстоит хранить. Т.е. выделить сущности.
А там уже займусь ее проектированием.

Пишу по максимуму:

- Страна;

- Город;
* Страна;

- Стадион;
* Вместительность;
* Страна;
* Город;

- Турнир;
* Страна;
* Тип;
* Название;
* Сезон;

- Команда;
* Название;
* Страна;
* Город;
* Тренер;
* Стадион;
* Игроки;

- Игрок;
* Имя;

- Матч;
* Дата;
* Чемпионат;
* Стадион;
* Команда1;
* Команда2;
* Судья;
* К1_ВсегоГолов;
* К2_ВсегоГолов;
* К1_Голов1Тайм;
* К2_Голов1Тайм;
* К1_Голов2Тайм;
* К2_Голов2Тайм;
* Результат;
* Статистика матча;
* Коэффициенты на матч;

- Гол;
* Минута;
* Игрок;
* Команда;
* К1_Голов;
* К2_Голов;

- Стат.показатели матча;

- Букмекер;
* Название;

- Коэффициенты на матч;
* Букмекер
* Тип коэффициента;
* Значение


Это то что с наскока вспомнил, для начала. Дополняйте, исправляйте. Правда, будет еще много нюансов, которые придется обдумать.

Сообщенияsergei7000, on 19 June 2015 - 08:10, сказал:

Когда пишут "профессионально" , иногда подразумевают , что это не бесплатно . Сперва надо уточнить это ...

Когда вы соберете БД следующий ваш шаг - это классификация чемпионатов . Есть чемпионаты , где много забивают , есть где мало , есть где так и сяк . Скажем классы А,Б,С ...

Кроме того есть чемпионаты , где мало забивают и играют в ничью , а есть так же чемпионаты где мало забивают но в 50% играют на П1 . Значить следующая классификация это по %-ам игр на П1 , Х , П2 . Например чемпионат где играли на : П1 48-52% , Х 22-25% ,П2 22-27% относится к классу 1 , где играли на : П1 30-35% , Х 27-32% , П2 30-35% класс 2 . где играли на П1 40-45% , Х 22-27% , П2 33-37% класс 3 .

Каждая лига имеет свойство изменяться . Например АПЛ в прошлом сезоне не относится к тому классу к которому принадлежала в этом сезоне . Поэтому после определения границ классов надо определить все лиги , всех сезонов , к какому классу они принадлежали . Например Франция 1 , сезон 98-99 класс С-3 и т.д.

Для чего это нужно ?
Когда будем искать критерии , возможно в некоторых классах , прогоняемый наш критерий будет не работать , а в других классах или классе даст плюс . И мы будем знать , что критерий работает в классе , скажем А-2 . И если у нас есть игра в лиге подобного класса то возможно рационально брать соответственный критерию исход матча .

Например . Критерий который использует просокер на П1 основывается на том , что в игре равных команд часто встреча завершается П1 . Под равными командами у них подразумевают команды , где хозяева дома играют так же как и гости на выезде . Но если взять чемпионат класса 2 , то такие игры заканчиваются чаще в ничью , чем П1 , а в классах 1 и 3 там вероятней П1 . Возможно прогнав по базе мы определим , что данный критерий рациональнее брать П1Ф(0) для класса 1и 3 и 1Х для класса 2 ...

Это уже аналитика - следующий шаг )

Отредактировано tester.nt, 19 June 2015 - 08:43.


#163 OFFLINE   sergei7000

    Специалист


  • mp
  • 2043 сообщения
180

Добавлено 19 June 2015 - 09:12

Сообщенияtester.nt, on 19 June 2015 - 08:46, сказал:





Это уже аналитика - следующий шаг )


....
- Игрок;
* Имя;

- Матч;
* Дата;
* Чемпионат; Класс ? Может сюда сразу это нужно сделать .
* Стадион;
* Команда1;
* Команда2;
* Судья;
.....


#164 OFFLINE   sergei7000

    Специалист


  • mp
  • 2043 сообщения
180

Добавлено 19 June 2015 - 09:25

Занесите в БД и кэфы на тоталлы 0,5 , 1 , 1.5 , 2 , 3 , 3.5 , 4 , 4.5 . Кэфы на Азиатский гандикап . И кэфы на форы команд . Если есть конечно данные .

В некоторых чемпионатах нет дают такие исходы , значить надо предусмотреть , что прогоняя критерии по таким рынкам не брались чемпионаты , где нет данных .

#165 OFFLINE   sergei7000

    Специалист


  • mp
  • 2043 сообщения
180

Добавлено 19 June 2015 - 09:48

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

Например критерий : После крупного поражения у себя дома (4-0 , 5-1 , 6-1 и т.д.) как команда возможно сыграет на выезде ? Скажем после Бразилия - Германия 1-7 в следующем матче я поставил против Бразилии , так как в команде игроки перегрызлись друг с другом ища виноватых в таком проигрыше . Но какое МО-е на этот критерий я не знаю . Какой кэф можно брать под этот критерий ?
Так вот , исследуя этот критерий , нам не нужно задействовать все данные из БД . А если не брать все данные обработка будет быстрее ...

#166 OFFLINE   tester.nt

    Специалист


  • Участник II
  • ПипПипПип
  • 192 сообщения
61

Добавлено 19 June 2015 - 10:36

Сообщенияsergei7000, on 19 June 2015 - 09:48, сказал:

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

Например критерий : После крупного поражения у себя дома (4-0 , 5-1 , 6-1 и т.д.) как команда возможно сыграет на выезде ? Скажем после Бразилия - Германия 1-7 в следующем матче я поставил против Бразилии , так как в команде игроки перегрызлись друг с другом ища виноватых в таком проигрыше . Но какое МО-е на этот критерий я не знаю . Какой кэф можно брать под этот критерий ?
Так вот , исследуя этот критерий , нам не нужно задействовать все данные из БД . А если не брать все данные обработка будет быстрее ...

Данные из базы берутся по запросу. Какой запрос напишете, такие данные и возьмете. Есть программы для обработки и анализа данных, которые эти запросы могут генерировать. Ексель, например, одна из них. Подключаетесь к базе, выбираете таблицы, которые надо загрузить, накладываете фильтры и имеете только те данные, которые нужно. Затем рассчитываете все, что душа пожелает.

Отредактировано tester.nt, 19 June 2015 - 10:36.


#167 OFFLINE   ScarferUK

    Новичок


  • Участник
  • Пип
  • 19 сообщения
1

Добавлено 20 June 2015 - 10:04

БД пока в процессе проектирования, куча всяких табличек образуется :)
Назрел вопрос по составам команд, надо ли оно?

#168 OFFLINE   hobby

    Специалист


  • mp
  • 2001 сообщения
485

Добавлено 20 June 2015 - 10:44

Конечно Барса без Месси это совсем другие кэфы. Или ПСЖ без Ибрагимовича, таких ситуаций не так много, но они есть. Другой вопрос, как это использовать.

#169 OFFLINE   tester.nt

    Специалист


  • Участник II
  • ПипПипПип
  • 192 сообщения
61

Добавлено 20 June 2015 - 11:28

Что касается составов, то это усложнит процесс администрирования базы, т.к. начнутся трансферы, травмы, рейтинги и показатели игроков. С другой стороны, мало кто статистически исследовал вопрос о том, насколько изменения состава влияет на игру команды и как следствие - на результат матча. Там много потенциально интересных вещей. Но за игроков стоит браться, если есть нормальный источник, с которого можно без проблем можно тянуть данные. Ну а если не заморачиваться, то можно обойтись авторами голов и все.

И еще один вопрос - обновление базы. Хорошо было бы, если б парсеры "висели" где-то на серваке, рядом с базой, и сами обновляли ее (раз в день, например). Но как это сделать - я пока не знаю.

#170 OFFLINE   ScarferUK

    Новичок


  • Участник
  • Пип
  • 19 сообщения
1

Добавлено 20 June 2015 - 12:17

На данный момент получается 17 таблиц.
Состав команды может быть, а может и не быть, может быть не полный состав, например ключевые игроки. Это все будет учитываться.

Осталось разобраться с турнирами, чемпионаты и кубковые соответственно стадии.

#171 OFFLINE   tester.nt

    Специалист


  • Участник II
  • ПипПипПип
  • 192 сообщения
61

Добавлено 21 June 2015 - 07:41

Подскажите, кто откуда данные берет по матчам, по голам и по статистике матча(удары и т.п.). А то есть, например, whoscored или soccerway, но мне оттуда массово тянуть данные получается долго. Да и отзывы проскакивали, что у них в цифрах бывают ошибки.

#172 OFFLINE   Bambuk

    Специалист


  • mp
  • 6322 сообщения
602

Добавлено 21 June 2015 - 10:09

Сообщенияtester.nt, on 21 June 2015 - 07:41, сказал:

Подскажите, кто откуда данные берет по матчам, по голам и по статистике матча(удары и т.п.). А то есть, например, whoscored или soccerway, но мне оттуда массово тянуть данные получается долго. Да и отзывы проскакивали, что у них в цифрах бывают ошибки.
www.myscore.ru/

#173 OFFLINE   tester.nt

    Специалист


  • Участник II
  • ПипПипПип
  • 192 сообщения
61

Добавлено 21 June 2015 - 12:16

А кто из программистов подскажет к какому скрипту обращаться, чтобы вытащить данные из матча с flashscore.com (например, из этого).

Отредактировано tester.nt, 21 June 2015 - 12:17.


#174 OFFLINE   Betamin

    Специалист


  • RSB
  • ПипПипПип
  • 186 сообщения
8

Добавлено 21 June 2015 - 21:08

Сообщенияtester.nt, on 21 June 2015 - 12:16, сказал:

А кто из программистов подскажет к какому скрипту обращаться, чтобы вытащить данные из матча с flashscore.com (например, из этого).

d.flashscore.com/x/feed/d_su_AyTNt38e_en_1

Процедура загрузки начинается из тела родительской страницы (строка 86) - там прописыввется код 'AyTNt38e'. Далее вызывается функцию detail_init, а она внутри скрипта www.flashscore.com/x/js/core_2_1000000000.js, который к сожалению obfuscated.

#175 OFFLINE   tester.nt

    Специалист


  • Участник II
  • ПипПипПип
  • 192 сообщения
61

Добавлено 21 June 2015 - 21:14

СообщенияBetamin, on 21 June 2015 - 21:08, сказал:

d.flashscore.com/x/feed/d_su_AyTNt38e_en_1

Процедура загрузки начинается из тела родительской страницы (строка 86) - там прописыввется код 'AyTNt38e'. Далее вызывается функцию detail_init, а она внутри скрипта www.flashscore.com/x/js/core_2_1000000000.js, который к сожалению obfuscated.

А что это значит? Через него можно вытянуть данные или нет?

#176 OFFLINE   ScarferUK

    Новичок


  • Участник
  • Пип
  • 19 сообщения
1

Добавлено 21 June 2015 - 21:24

Думаю надо эмулировать работу браузера, тогда данные должны загрузиться.

#177 OFFLINE   Betamin

    Специалист


  • RSB
  • ПипПипПип
  • 186 сообщения
8

Добавлено 21 June 2015 - 21:46

obfuscated - код максимально затруднен для понимания, типа была функция 'detail_init', стала 'gkjjttgghfyy' , т.е. другими словами код изуродован. У меня лично нет опыта диобфуксации, вроде существуют инструменты. Но думаю можно обойтись и без вникания в функцию 'detail_init'. Алгоритм очень простой:

1. Из адреса страницы матча www.flashscore.com/match/AyTNt38e/#match-summary берем код - AyTNt38e
2. С этим кодом формируем адрес страницы, где находятся реальные данные в html - d.flashscore.com/x/feed/d_su_AyTNt38e_en_1
3. Парсим html

#178 OFFLINE   tester.nt

    Специалист


  • Участник II
  • ПипПипПип
  • 192 сообщения
61

Добавлено 21 June 2015 - 22:41

СообщенияBetamin, on 21 June 2015 - 21:46, сказал:

obfuscated - код максимально затруднен для понимания, типа была функция 'detail_init', стала 'gkjjttgghfyy' , т.е. другими словами код изуродован. У меня лично нет опыта диобфуксации, вроде существуют инструменты. Но думаю можно обойтись и без вникания в функцию 'detail_init'. Алгоритм очень простой:

1. Из адреса страницы матча www.flashscore.com/match/AyTNt38e/#match-summary берем код - AyTNt38e
2. С этим кодом формируем адрес страницы, где находятся реальные данные в html - d.flashscore.com/x/feed/d_su_AyTNt38e_en_1
3. Парсим html

А браузер должен видеть данные на d.flashscore.com/x/feed/d_su_AyTNt38e_en_1? А то у меня ни браузер, ни программный запрос по этой ссылке данных не видит. Браузер выдает строку "401 Unauthorized", а программный запрос - ошибку. Может надо какой-то особенный запрос посылать?

СообщенияScarferUK, on 21 June 2015 - 21:24, сказал:

Думаю надо эмулировать работу браузера, тогда данные должны загрузиться.

У меня получается только через ChromeDriver. Но это очень долго. А всякие GUI-less браузеры не могу заставить видеть данные. Просто никогда с этим дел не имел. Спарсить html намного легче)

Отредактировано tester.nt, 21 June 2015 - 22:38.


#179 OFFLINE   Betamin

    Специалист


  • RSB
  • ПипПипПип
  • 186 сообщения
8

Добавлено 21 June 2015 - 22:46

Сообщенияtester.nt, on 21 June 2015 - 22:34, сказал:

А браузер должен видеть данные на d.flashscore.com/x/feed/d_su_AyTNt38e_en_1? А то у меня ни браузер, ни программный запрос по этой ссылке данных не видит

Должен. Оказывается все-таки там хитрее. Надо в http запрос включать специальный заголовок
X-Fsign: SW9D1eZo

Боюсь что этот SW9D1eZo может изменяться от матча к матчу, а может там и инфа об IP клиента включена для проверки.

Попробуйте сделать запрос с X-Fsign: SW9D1eZo, получитее данные, или нет?

#180 OFFLINE   Betamin

    Специалист


  • RSB
  • ПипПипПип
  • 186 сообщения
8

Добавлено 21 June 2015 - 23:01

Хорошая новость. Я позапрашивал другие матчи - там везде X-Fsign: SW9D1eZo, так что похоже это константа.