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


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

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


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

#121 OFFLINE   Пешеход

    Пунтер


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

Добавлено 12 May 2015 - 21:36

СообщенияПешеход, on 12 May 2015 - 20:55, сказал:

у меня получилось, но правда это на 1с будет так, но я думаю это можно перевести на http-соедиенение в Excel

Соединение=Новый HTTPСоединение("d.livescore.in"); // можно вместо livescore.in подставить ваш myscore.ru
Запрос=Новый HTTPЗапрос("/x/feed/d_st_lWRLbvgD_en_4"); // тут как видно lWRLbvgD должен быть идентификатор нужного матча
Запрос.Заголовки.Вставить("Referer","http://d.livescore.in/x/feed/proxy");
Запрос.Заголовки.Вставить("X-Fsign", "SW9D1eZo");
Ответ=Соединение.Получить(Запрос);
Текст=Ответ.ПолучитьТелоКакСтроку();

Бамбук, вот перевел на VBA будет так

Sub Макрос1()
Dim result As String
Dim myURL As String
Dim winHttpReq As Object
Set winHttpReq = CreateObject("WinHttp.WinHttpRequest.5.1")

myURL = "http://d.livescore.in/x/feed/d_st_lWRLbvgD_en_4"

winHttpReq.Open "GET", myURL, False
winHttpReq.SetRequestHeader "Referer", "http://d.livescore.in/x/feed/proxy"
winHttpReq.SetRequestHeader "X-Fsign", "SW9D1eZo"
winHttpReq.Send

txt = winHttpReq.responseText
End Sub

#122 OFFLINE   Bambuk

    Специалист


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

Добавлено 12 May 2015 - 22:46

Дописал к коду Range("A1").Value = txt посмотрел что-то там не то.... данные какие-то зашли но явно из другой оперы (а в примере реальные адреса? а то может я попал вообще в в штаб-квартиру Моссад ) вот этот адрес он по идее ошибку даёт в браузере d.livescore.in/x/feed/d_st_lWRLbvgD_en_4
И ещё может какие-то библиотеки надо подключать? Я в этом ни хрена не понимаю...

Отредактировано Bambuk, 12 May 2015 - 22:51.


#123 OFFLINE   bitrix

    Пунтер


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

Добавлено 12 May 2015 - 22:53

я тоже попробовал сейчас запустить скрипт. и что то он не собирает нечего...

#124 OFFLINE   Bambuk

    Специалист


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

Добавлено 12 May 2015 - 23:10

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

Как это нет данных?
Ну это ж браузер видит а веб запрос не возвращает их ("не видит" можно сказать). Я их глазами тоже вижу так что мне с того?
Вы бы код написали с поясняловом лучше...


Вот с этого сайта удобно по карточкам данные брать www.xscores.com/soccer может кому сгодиться кто по карточкам играет.

Отредактировано Bambuk, 12 May 2015 - 23:19.


#125 OFFLINE   Пешеход

    Пунтер


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

Добавлено 12 May 2015 - 23:53

СообщенияBambuk, on 12 May 2015 - 22:46, сказал:

Дописал к коду Range("A1").Value = txt посмотрел что-то там не то.... данные какие-то зашли но явно из другой оперы (а в примере реальные адреса? а то может я попал вообще в в штаб-квартиру Моссад ) вот этот адрес он по идее ошибку даёт в браузере d.livescore.in/x/feed/d_st_lWRLbvgD_en_4
И ещё может какие-то библиотеки надо подключать? Я в этом ни хрена не понимаю...

В ячейку у вас попадут данные статистики т.е. исходный код той страницы а именно вот этой www.livescore.in/match/lWRLbvgD/#match-statistics;0 , её остается только распарсить.

1) Вы попробуйте откройте эту ссылку в браузере www.livescore.in/match/lWRLbvgD/#match-statistics;0
2) И скопируйте то, что у вас получилось в результате выполнения моей процедурки (т.е. из содержимого вашей ячейки А1) в текстовый файл, и например поиском найдете "52%" или "Ball Possession" у вас должна найтись эта инфа.

Просто я юзаю обычно англ версию майскор.ру = лайвскор.ин может это вас напугало :). если к майскор.ру обращаться то надо переделать все livescore.in на myscore.ru но у меня вот там кодировка не та получается, кириллица превратилась в абракадабру))

Отредактировано Пешеход, 13 May 2015 - 00:03.


#126 OFFLINE   tester.nt

    Специалист


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

Добавлено 13 May 2015 - 01:08

СообщенияBambuk, on 12 May 2015 - 23:10, сказал:


Ну это ж браузер видит а веб запрос не возвращает их ("не видит" можно сказать). Я их глазами тоже вижу так что мне с того?
Вы бы код написали с поясняловом лучше...

Вам, по-моему, только VBA подходит. В данном случае помочь не могу)

#127 OFFLINE   Bambuk

    Специалист


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

Добавлено 13 May 2015 - 06:05

СообщенияПешеход, on 12 May 2015 - 23:53, сказал:

В ячейку у вас попадут данные статистики т.е. исходный код той страницы а именно вот этой www.livescore.in/match/lWRLbvgD/#match-statistics;0 , её остается только распарсить.

1) Вы попробуйте откройте эту ссылку в браузере www.livescore.in/match/lWRLbvgD/#match-statistics;0
2) И скопируйте то, что у вас получилось в результате выполнения моей процедурки (т.е. из содержимого вашей ячейки А1) в текстовый файл, и например поиском найдете "52%" или "Ball Possession" у вас должна найтись эта инфа.

Просто я юзаю обычно англ версию майскор.ру = лайвскор.ин может это вас напугало :). если к майскор.ру обращаться то надо переделать все livescore.in на myscore.ru но у меня вот там кодировка не та получается, кириллица превратилась в абракадабру))
Дело в том что там в коде страницы в явном виде данных нет---то есть саму страницу юзать нет смысла,..... там скрипт, который потом куда-то там ещё обращается (ну если вот по колхозному изъясняться).... Дело в том что совет Пакету--- обратиться к программистам для написания парсера, он конечно хорош в сиюминутном смысле, дело в том что хозяин сайта ж не даёт гарантии что структура данных не измениться или платформа не изменится...а это подразумевает постоянную поддержку продукта....поэтому я думаю лучше по топорному но самому немного рулить этот процесс (или если только автор парсера "разжуёт" всё от корки до корки---но он же в учителя не нанимался по идее....ему-то нахер такие заморочки--напиши да научи да подключи....вобщем так дойдёт дело до всех ...чи и потом ещё и денег заработай...)

Я думаю тут есть ещё один выход из положения--не самый лучший конечно но это в любом случае лучше чем ни чего---можно попросить ретро данные у кого-то потом попробовать их пообрабатывать...может так оказаться что часть не особо-то и надо (и тогда оставшиеся может ещё можно где-то взять более простыми механизмами)....При этом я думаю что сезон а то и два можно спокойно отыграть по тем закономерностям которые будут найдены---может так оказаться что данные которые нужны можно просто смотреть на сайтах а потом какие-то манипуляции проводить и вычисления не сильно сложные где база подойдёт и без догрузки например (ну вот практически тоже самое формально вот тут Ссылка Здесь и тут данные можно по идее и подавать на нейросеть
с сайтов.) для большого числа лиг это конечно утопия но для 3-6 я думаю на крайняк попрёт....если метод отточен и работает тогда можно допустим чесать репу и думать о хорошем парсере и механизме сбора и обновления данных. Мне например как-то минуты понадобились для нескольких лиг так я их брал вот тут 24score.com/
Там просто запросы в цикле крутятся да и всё и то там делал в полуавтоматическом режиме так как там некоторые цифры ни куда не попадают и получается ошибка---а исключения я не умею обрабатывать.... На указанном сайте правда только по небольшому числу лиг можно что-то выловить и плохо что нет ударов в створ...а допустим карточки, углы, владение мячём там в шахматках даже есть.

#128 OFFLINE   tester.nt

    Специалист


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

Добавлено 13 May 2015 - 08:16

СообщенияBambuk, on 13 May 2015 - 06:05, сказал:

Я думаю тут есть ещё один выход из положения--не самый лучший конечно но это в любом случае лучше чем ни чего---можно попросить ретро данные у кого-то...

Или, ещё раз повторюсь, освоить сервис parsehub, специально для этого созданный. Есть бесплатный пакет, практически с полным набором функций. Несущественные ограничения будут лишь по времени (5 странциц в минуту) и количеству обработки страниц за раз (1000шт). Пишет данные в csv и json.

#129 OFFLINE   Bambuk

    Специалист


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

Добавлено 13 May 2015 - 11:09

Сообщенияtester.nt, on 13 May 2015 - 08:16, сказал:

Или, ещё раз повторюсь, освоить сервис parsehub, специально для этого созданный. Есть бесплатный пакет, практически с полным набором функций. Несущественные ограничения будут лишь по времени (5 странциц в минуту) и количеству обработки страниц за раз (1000шт). Пишет данные в csv и json.
Там одна беда---всё на непонятном языке. Ладно бы про пиво да за баб ......,а так это примерно тоже самое что я сам китаец, думаю по-русски, а пишу тут посты по-английски.....ну % понимающих возрастёт наверно применительно ко мне, но в целом-то вряд ли.... Если, конечно, разобраться в parsehub, то оно было б полезно .......

#130 OFFLINE   Пешеход

    Пунтер


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

Добавлено 13 May 2015 - 11:49

СообщенияBambuk, on 13 May 2015 - 06:05, сказал:

Дело в том что там в коде страницы в явном виде данных нет---то есть саму страницу юзать нет смысла,..... там скрипт, который потом куда-то там ещё обращается (ну если вот по колхозному изъясняться)....

Нет там скрипта и никуда там ничто не обращается)), там просто данные в окружении html тэгов, которые нужно разобрать (распарсить) . Вы вроде чутка парсингом на ВБА занимались, где то я видел темы :ike: , ну да ладно :) .

#131 OFFLINE   Vladislove

    Специалист


  • Участник II
  • ПипПипПип
  • 165 сообщения
53
  • МестоположениеРоссия

Добавлено 13 May 2015 - 15:35

Сообщенияandre48, on 12 May 2015 - 19:43, сказал:

Все четыре коэффициента даны БК Марафон. 2,17 и 2,30 на равновесные форы минус 1 и +0,5 (Х2) соответственно, коэфф. 1,65 дан на фору -0,5(П1), а 1,79 на фору +1, то есть эти коэф. даны на равновесные форы +0,5 (иногда говорят с покупкой половины мяча). Равновесные форы это форы на разные команды абсолютная величина разницы между коэффициентами которых минимальна по отношению к такой разнице коэффициентов данных на другие форы в этом матче на рынке фор, без учета фор вида +0,25 или +0,75.
Теперь понял, спасибо)

#132 OFFLINE   Bambuk

    Специалист


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

Добавлено 13 May 2015 - 21:25

СообщенияПешеход, on 13 May 2015 - 11:49, сказал:

Нет там скрипта и никуда там ничто не обращается)), там просто данные в окружении html тэгов, которые нужно разобрать (распарсить) . Вы вроде чутка парсингом на ВБА занимались, где то я видел темы :ike: , ну да ладно :) .
Но я смотрю через браузер код страницы (не коды элементов а именно самой страницы) там нет тех цифер, которые нам надо---если смотреть коды элементов то там данные есть
но тогда вот они должны в строковую переменную залетать вместе с остальным хламом и тогда их можно разбором выявить... а там я ж вижу что в ячейке А1--и там что-то другое...может конечно я что-то не так делаю....надо будет ещё попробовать...

#133 OFFLINE   tester.nt

    Специалист


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

Добавлено 13 May 2015 - 23:09

Прикрепленный файл  video.png   2.61K   28 Количество загрузок
Видео 2: Загрузка множества csv-файлов и объединение их в одну таблицу PowerPivot
Описание: загрузка двухсот csv-файлов с сайта football-data.co.uk и объединение их в одну таблицу PowerPivot меньше чем за три минуты :)

Отредактировано tester.nt, 13 May 2015 - 23:14.


#134 OFFLINE   tester.nt

    Специалист


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

Добавлено 13 May 2015 - 23:20

Следующее видео будет о том, как вычислять новые критерии на основе существующих даных.

#135 OFFLINE   Bambuk

    Специалист


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

Добавлено 14 May 2015 - 03:07

Сообщенияtester.nt, on 13 May 2015 - 23:09, сказал:

привязанность video.png
Видео 2: Загрузка множества csv-файлов и объединение их в одну таблицу PowerPivot
Описание: загрузка двухсот csv-файлов с сайта football-data.co.uk и объединение их в одну таблицу PowerPivot меньше чем за три минуты :)
А csv лучше чем просто ексель для PowerPivot ? А то там по идее есть ексель файлы сразу по нескольким лигам---книга=сезон. Да в принципе ...разницы нет наверно.

По парсеру немного попереводил автопереводчиком ...получилось коряво, но зато на русском хоть...может кому пригодиться, чтоб не корячиться с перде....водиловом.
https://yadi.sk/i/NZbOpCqAgcHy7

#136 OFFLINE   tester.nt

    Специалист


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

Добавлено 14 May 2015 - 08:16

СообщенияBambuk, on 14 May 2015 - 03:07, сказал:


А csv лучше чем просто ексель для PowerPivot ? А то там по идее есть ексель файлы сразу по нескольким лигам---книга=сезон. Да в принципе ...разницы нет наверно.

Если быть точнее, то для PowerQuery, т.к. именно эта надстройка занимается загрузкой, объединением и первичной подготовкой данных к анализу.

Csv более легковесны (хотя, надо посмотреть насколько). Но в данном случае, действительно, существенной разницы нет.

#137 OFFLINE   tester.nt

    Специалист


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

Добавлено 14 May 2015 - 22:14

Сообщенияtester.nt, on 13 May 2015 - 23:09, сказал:

Видео 2: Загрузка множества csv-файлов и объединение их в одну таблицу PowerPivot
Описание: загрузка двухсот csv-файлов с сайта football-data.co.uk и объединение их в одну таблицу PowerPivot меньше чем за три минуты :)

Прикрепленный файл  tutorial.jpg   3.79K   7 Количество загрузок

Некоторые интересные моменты по поводу второго видео.

1. Сравнения размеров данных

Здесь хочу обратить ваше внимание сразу на два момента.
Во-первых, я посмотрел насколько csv-файлы легче xls-файлов. Получается примерно в три раза.
Во-вторых, на основе данной иллюстрации можно оценить степень сжатия информации движком VertiPaq (движок обработки и хранения данных в PowerPivot) и сравнить его с вариантом хранения данных в обычных екселевских таблицах.

Прикрепленный файл  Screen Shot 2015-05-14 at 23.29.13.png   20.84K   5 Количество загрузок

SoccerExcelWorkFile - это наш рабочий PowerPivot-файл.
SoccerExcelWorkFileSimpleTable - это вариант файла, где данные загружались не в Data Model, а на обычный рабочий лист.
SoccerExcelDataBase - это папка с исходными csv-файлами.
SoccerExcelDataBaseXls - это папка с теми же данными, только в xls-формате.

2. Немного о PowerQuery
PowerQuery - это визуальный редактор запросов.

Прикрепленный файл  Screen Shot 2015-05-14 at 23.22.29.png   211.79K   5 Количество загрузок

Для того, чтобы создать новый запрос необходимо выбрать источник данных на вкладке Get External Data. Список поддерживаемых источников довольно неплохой (даже умеет распознавать и читать таблицы с веб-страниц, но не всегда). Лично я пользовался чтением csv- и xls-файлов, а также подключением к mysql-базе. В обеих случаях все читает без проблем.

Список запросов находится в правой области экрана под надписью Workbook Queries. По имени запроса создается имя таблицы в PowerPivot (поэтому мы в следующем видео переименуем наш запрос на Matches (т.к. мы именно матчи загружаем).

Прикрепленный файл  Screen Shot 2015-05-14 at 23.23.53.png   908.1K   3 Количество загрузок

Внутри PowerQuery все изначально предопределенные функции доступны на панели инструментов. Можно много чего делать с данными в процессе загрузки: изменять названия столбцов, изменять поиском и заменой значения ячеек в выбранном столбце, удалять, разделять и/или добавлять столбцы и т.д.

На правой панели, под надписью APPLIED STEPS, размещен список проделанных шагов, которые можно изменять, перемещать или удалять.

После того, как мы подготовили наш запрос мы должны нажать на кнопку Close&Load. Если выберем вариант с тремя точками, то появится окно выбора варианта загрузки (как на рисунке ниже). Если же выберем без трех точек, то будут выбраны настройки по-умолчанию.

Прикрепленный файл  Screen Shot 2015-05-14 at 23.25.13.png   79.46K   1 Количество загрузок

Любой запрос можно загружать или в модель данных, или на обычный рабочий лист, или туда и туда. Или не загружать никуда, а просто создавать соединение (последний вариант изображен на рисунке).

3. Файл с подготовленным PowerQuery-запросом
Запрос, который умеет объединять данные из разных файлов в одну таблицу (причем для него не важно, в каком порядке будут столбцы в исходных файлах) - это решение, найденное в Интернет. Если кто хочет разобраться более детально, то смотрите ссылки:
- powerquery.training/portfolio/append-data-from-files/
- www.powerpivotpro.com/2015/01/power-query-for-excel-combine-multiple-files-of-different-file-types/

4. Особенности работы с PowerPivot
- в PowerPivot нельзя изменять данные в ячейках. Можно лишь добавлять вычисляемые столбцы;
- из PowerPivot нельзя выгружать данные, кроме как способом copy&paste;
- в PowerPivot есть возможности загружать данные из разных источников напрямую, а не через PowerQuery, но эти возможности скромнее;

#138 OFFLINE   tester.nt

    Специалист


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

Добавлено 16 May 2015 - 10:00

Подумал, что стоило бы выложить ко второму видео рабочий файл, может кто захочет поэкспериментировать.
В архиве два файла.
Файл, который заканчивается на "_0" - тот, что был перед началом работы.
Файл, который заканчивается на "_1" - тот, который получился в результате наших манипуляций.

Прикрепленный файл  files.jpg   1.91K   0 Количество загрузокПрикрепленный файл  FilesFromVideo2.zip   1.85MB   9 Количество загрузок

Теперь буду выкладывать рабочие файлы вместе с видео.

Отредактировано tester.nt, 16 May 2015 - 10:06.


#139 OFFLINE   tester.nt

    Специалист


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

Добавлено 16 May 2015 - 19:47

Прикрепленный файл  video.jpeg   7.41K   3 Количество загрузок

Видео 3: Создание временных фильтров на основе таблицы дат
- создание таблицы дат;
- связывание таблицы с матчами и таблицы дат;
- создание временных фильтров на основе таблицы дат;
- пару примеров навигации по временным срезам.

Прикрепленное изображение: files.jpgПрикрепленный файл  FileFromVideo3_1.zip   1.9MB   11 Количество загрузок
(Прикреплен только конечный файл, больше не позволяет квота.
Организую как-то загрузку на онлайн хранилище).

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

P.S.: напомню, что для корректной работы приложенных файлов скорее всего потребуется Excel 2013. Но, можете попробовать, у кого десятка. А вдруг заработают.

#140 OFFLINE   tester.nt

    Специалист


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

Добавлено 17 May 2015 - 19:00

Vladislove, скажите, Вам все понятно из видео или может возникают какие-то трудности? Вы пробуете открывать рабочие файлы? Все работает?

Bambuk, как у Вас дела со сводными таблицами? Немного разобрались?