- Сообщения
- 56
- Реакции
- 18
- Баллы
- 8
Задумался тут о написании собственного сканера Live вилок.
Просто - тема интересная с технической точки зрения.
Стало интересно - как парсят live данные эти сканеры?
Я покопался в коде некоторых контор - все конторы работают по разному:
кто то по аяксом присылает обновленные коэффициенты в виде JSON-а, кто то готовый HTML.
Если пытаться разобраться в JSON массивах каждой конторы - то просто охренеешь разбираться что значит конкретное поле. Ну и не все обновляют JSON-ом.
Если постоянно посылать GET запросы - то во первых твой IP очень быстро забанят, во вторых - на многих конторах контент страницы формируется уже на client side - т.е. обычный GET запрос а таких конторах не покажет тебе ничего.
...
И вот я думаю - что основным универсальным методом парсинга - является парсинг с помощью JS.
Т.е. полная иммитация обычного пользователя, которые открыл страницу события и тупо смотрит.
Да, под каждую контору каждого спорта нужно написать свой скрипт парсинга.
Но это не долго. Я в своем роботе такое делаю быстро.
Тут проблема в другом:
Одна открытая страница какого нибудь live события пожирает немало ресурсов компьютера.
А нам к примеру нужно парсить 100 контор, и у каждой конторы - 100 LIVE - событий. Т.е. одновременно нам нужно парсить 10 000 страниц, данные на которых обновляются каждую секунду...
Если парсить браузером - то понадобится несколько сотен виртуальных машин, чтобы были ресурсы для всех этих 10 000 одновременно открытых браузеров. И один мощный комп для DataBase - сервера, который будет принимать каждую секунду все эти 10 000 запросов от разных ботов.
Вопрос программистам: как думаете - как парсят поисковики LIVE вилок одновременно такое большое количество событий?
Просто - тема интересная с технической точки зрения.
Стало интересно - как парсят live данные эти сканеры?
Я покопался в коде некоторых контор - все конторы работают по разному:
кто то по аяксом присылает обновленные коэффициенты в виде JSON-а, кто то готовый HTML.
Если пытаться разобраться в JSON массивах каждой конторы - то просто охренеешь разбираться что значит конкретное поле. Ну и не все обновляют JSON-ом.
Если постоянно посылать GET запросы - то во первых твой IP очень быстро забанят, во вторых - на многих конторах контент страницы формируется уже на client side - т.е. обычный GET запрос а таких конторах не покажет тебе ничего.
...
И вот я думаю - что основным универсальным методом парсинга - является парсинг с помощью JS.
Т.е. полная иммитация обычного пользователя, которые открыл страницу события и тупо смотрит.
Да, под каждую контору каждого спорта нужно написать свой скрипт парсинга.
Но это не долго. Я в своем роботе такое делаю быстро.
Тут проблема в другом:
Одна открытая страница какого нибудь live события пожирает немало ресурсов компьютера.
А нам к примеру нужно парсить 100 контор, и у каждой конторы - 100 LIVE - событий. Т.е. одновременно нам нужно парсить 10 000 страниц, данные на которых обновляются каждую секунду...
Если парсить браузером - то понадобится несколько сотен виртуальных машин, чтобы были ресурсы для всех этих 10 000 одновременно открытых браузеров. И один мощный комп для DataBase - сервера, который будет принимать каждую секунду все эти 10 000 запросов от разных ботов.
Вопрос программистам: как думаете - как парсят поисковики LIVE вилок одновременно такое большое количество событий?