Доброго времени суток, коллеги. Я программист компании ITForecast. Пишу с аккаунта Лены за неимением личного аккаунта на фрилансханте.
Не первый раз слышу от Лены, что опытные фрилансеры с огромным багажом клиентов за спиной говорят о том, что пишут краулеры с нуля под каждого заказчика.
При этом ведется рассказ о том, что писать каждый раз с нуля лучше, чем совершенствовать готовые решения.
Это либо откровенная ложь, либо абсолютная безграмотность в области проектирования сложных систем.
Ладно наша компания, ну а Гугл ? Гугловский краулер, который затягивает и парсит сайты написан более 20 лет назад и с тех пор его код почти не менялся.
Или вы думате, что Гугл пишет под каждый сайт новый краулер с нуля ? Меня искренне улыбает такое предположение.
С точки зрения краулинга, все сайты отличаются друг от друга только структурой html+javaScript верстки.
Напишите язык селектов по примеру реализации каскадных таблиц стилей и все что вам останется менять в краулере под каждый новый сайт - это выборку нужных полей из html кода страниц.
Возможность указания данных выборок в нашей программе выносится в панель администратора, потому для добавления новых сайтов нет необходимости лезть в программное ядро краулера.
Хоть убей не понимаю зачем каждый раз изобретать велосипед заново, если намного проще повернуть руль у уже готового велосипеда и поехать ?