Ваш вопрос большой, но я постараюсь ответить на него, так как раньше проектировал и внедрял подобные системы.
Игнорируя управление учетными записями пользователей, ваша система должна будет предоставить следующие средства:
получение новых данных о перспективах (веб-паук)
выявление и извлечение соответствующих результатов из данных о перспективах (фильтрация)
сбор, ведение и организация результатов (хранение)
выбор результатов на основе различных метаданных (запрос)
формат результатов для доставки пользователям (шаблонизатор)
доставка отформатированных результатов пользователям (доставка)
Если объем вашего проекта небольшой (скажем, менее 100 сайтов, требующих паутинга в день), вы, вероятно, могли бы ужиться с одним из многих веб-пауков с открытым исходным кодом, включая wget, Nutch, WebSphinx и т. Д. предоставить инструментарий (специальное программное обеспечение) для планирования, мониторинга и контроля. Если объем вашего проекта больше, чем это, вам может понадобиться «накатить свое» решение для паутинга (специальное программное обеспечение). Обычно это проектируется как распределенная параллельная архитектура.
Для простой фильтрации достаточно регулярных выражений, но для более сложных задач, требующих знания макета HTML (извлеките текстовый компонент пятого элемента списка (<LI/>
) четвертой таблицы на странице), вам нужно использовать синтаксический анализатор XHTML. Однако в дальнейшем вам нужно будет предоставить специальное программное обеспечение для фильтрации по потребностям ваших пользователей.
Хотя для хранения результатов, извлеченных из извлеченных документов, можно использовать любую технологию базы данных, использование механизма, оптимизированного для текста, такого как Apache SOLR, позволит вам легко расширять критерии поиска в соответствии с вашими потребностями. Так как SOLR поддерживает вложение и поиск метаданных, связанных с каждым документом, это будет хорошим выбором. Вам также потребуется предоставить специальное программное обеспечение для автоматизации этого шага.
После того, как вы выбрали список кандидатов в SOLR, любой язык сценариев можно использовать для шаблонирования их в одно или несколько электронных писем, а также вставлять их в ваш почтовый агент (MTA). Для этого также требуется специальное программное обеспечение для автоматизации этого процесса (и, при необходимости, для ввода пользовательских данных в каждое сообщение).