Что нового

[Сеть, интернет] Анализ большого количества сайтов

mef-t

Осваивающий
Сообщения
306
Репутация
30
Доброго времени суток.

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

Для примера:
у меня есть список из 32 000 сайтов.
Нужно получить title и занести его в excel.

Изначально я открывал исходники сайта через $oHTTP.ResponseText() или _INetGetSource($URL, False).
Но с учетом обработки, время в среднем не меньше 1сек на 1 сайт, чаще получается больше.

Попробовал использовать InetGet("URL", "filename") с фоновой загрузкой в файл, чтобы избежать простоя при загрузке.
Время загрузки ~ 0,5 - 0,6 на сайт. Вторым этапом обработка файлов.
И все равно получается в среднем 1 сек на сайт.

Если брать 1 сек, то обработка 32 000 сайтов займет примерно 9 часов. И это с учетом того, что в процессе не возникнет проблем.
По факту же мне необходимо увеличить объем обрабатываемых сайтов до 1 000 000 (в идеале 5m). Это где-то 12 дней непрерывной работы.

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

WSWR

AutoIT Гуру
Сообщения
941
Репутация
363
А несколько процессов нельзя запустить?
И обрабатывать данные лучше в памяти

А из языков я бы рекомендовал Freebasic - компилируемый, бесплатный, поддерживает многопоточность, библиотек вполне достаточно, например, есть и curl https://ru.wikipedia.org/wiki/CURL
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Можно попробовать InetEx, качать в память и на ходу проверять Title, таким образом можно не качать всё содержимое страницы.
Ну или использовать TCP* функции если не планируется поддержка https.
 
Верх