На чем лучше реализовать многопоточный веб-скрейпер/парсер сайтов?
НА каком языке программирования и используя какие библиотеки\фреймворки можно написать многопоточный веб-скрейпер/парсер сайтов.
php, nodejs, go, C++ ....
Где по определенному запросу пользователя - необходимо параллельно спарсить со сторонних сайтов-магазинов товары по данному запросу - вглубь сайта не лезть, просто поверхностно на первой странице.
ТО есть пользователь вбивает "джинсы" - сервер запускает до 50 параллельных скриптов или функций, в каждом есть 1-5 http запросов (несколько запросов возможно из-за сложной авторизации на сайте, из-за ввода капчи и тд)/ и другая логика, уникальная для каждого сайта-донора.
И потом информация сбирается со всех потоков и выдается пользователю со всех сайтов.
Информация по ключам будет кэшироваться на некоторое время, но как правило нужно готовиться к высокой нагрузке, когда пользователи будут одновременно искать разные слова\фразы. джинсы,кофта,рубашка и тд.
И сервер, не находя информации в кэше - будет повторно парсить данные со сторонних сайтов в параллельных потоках. То есть и пользователи запрашивают одновременно 50 разных фраз, и серверу необходимо создать по N параллельных функций-парсеров со своей логикой
Andreda дорогой пользователь, указывайте соответствующие вашему вопросу теги.
Не стоит спамить тегами в надежде, что это увеличит количество просмотров и/или ответов.
Это так не работает и только приведет к удалению ваших вопросов при повторном спаме.
Выбор языка для подобной задачи сводится к выбору имеющихся готовых библиотек, которые нужно просто скомпоновать. Задача решалась уже сотни раз, ваять свои велосипеды нет смысла. В почти любом языке, применяемом массово для веб-разработки есть готовые библиотеки для решения подобных задач.
Ну и точно не на С++, будет долго, дорого и бессмысленно, это язык для других задач.
Можно еще посоветовать делать том языке, который лучше всего знаком/нравится тому, кто будет непосредственно это программировать. Или, если исполнитель не знает ни одного подходящего под задачу языка - на PHP, просто потому, что будет проще вникнуть.