leshqow
@leshqow
-l-

Какой оптимальный способ сбора данных со сторонних сайтов?

Помогите прояснить картину, в интернете довольно не конкретная информация.
Стоит задача: сбор данных с определенных сайтов (это значения double) и сравнение их с эталонной цифрой, получая разницу, значения меняются много раз в минуту. Цифры эти на сайте находятся на разных страницах. Скорость получения данных и их анализа имеет наивысший приоритет. Если скачивать каждую страницу и парсить регулярками получится очень медленно. Пока со всех сайтов скачаешь страницы и проанализируешь, данные уже могут быть не актуальны.

ИТОГО: есть 10 сайтов где на разных страницах есть значения double, которые меняются скажем 6 раз в минуту. Как их вытаскивать максимально быстро?

UPD: задачу буду решать на Java + JSoup
  • Вопрос задан
  • 408 просмотров
Решения вопроса 1
CellycoMobiles
@CellycoMobiles
indi developer @CellycoMobiles
Прекрасный выбор технологий.
Осталось только в много потоке запустить краулеры.
Ну или, если реализовывать миуросервисы, параллельно несколько инстансов запускать, которые будут обрабатывать каждый сайт, который нужно контролировать.

Рекомендовал бы второй вариант. Это удобнее, например произошла какая-то ошибка в одном из коаулкров - остальные продолжили работу, пока кубер поднимает упавший.

В моей компании парсеры реализованы на Vertx.
Причины выбора этого фреймворка:
  1. Собственный DNS resolver. хост, либо 8.8.8.8, либо кастомизируемый список.
  2. Неблокирующие запросы. Можно запускать много запросов одновременно. Спасает на бесплатных медленных проксях.
  3. сложные блокирующие операции, как например парсинг ответа или ожидание капчи, реализуются в отдельных потоках. Worker threads, с отдельным пулом. Очень комфортно разделять от общей лоики.


Много пишу. Слушайте у меня есть уже реализованы проект, открытый на гитхабе. В конкурсе участвовал, но проиграл. Там как раз все о чем пишу реализовано. Только не все Javadocs расписаны.

Может я статейку на Хабр напишу, чем все в один ответ запихивать... Как вы считаете?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы