Я хотел бы создать полуобщий сканер и скребок для веб-страниц продуктов аптек.
Я знаю, что большинство веб-сайтов не равны, но большинство URL-адресов у меня есть.в списке следуйте одному конкретному типу логики:
Например, с помощью Microdata, JSON-ld и т. д. Я уже могу очистить определенную группу веб-страниц.
Используя XPath, хранящийся в файлах конфигурации, я могу сканировать и просматривать некоторые другие веб-сайты.
И другие методы работают хорошо для остальных веб-сайтов, и если я уже смогу извлечь нужную мне информацию из 80% данных, я был бы более чем доволен результатом.
По сути , Я беспокоюсь о создании хорошего конвейера для решения проблем, связанных с мониторингом (для обработки веб-страниц, которые внезапно меняют свою структуру), масштабируемостьи производительность.
Я подумал о следующем конвейере (без учета хранилища):
Создайте 2 главных паука.Тот, который сканирует сайты с учетом их доменов.Он получает все URL-адреса внутри веб-страницы (конечно, подчиняясь robots.txt) и помещает их в систему очередей, в которой хранятся URL-адреса, готовые к обработке .Затем второй паук берет последний URL-адрес в очереди и извлекает его, используя метаданные, XPath или любой другой метод.Затем это снова помещается в другую систему очередей, которая в конечном итоге будет обрабатываться модулем, который помещает все данные в очереди в базу данных (которую я до сих пор не знаю, должен ли это быть SQL или NoSQL).
Преимущества этой системы в том, что при размещении очередей между основными процессами извлечения и хранения становится возможным выпол- нение распараллеливания и масштабирования.
Есть ли в моей логике какие-либо недостатки?Что мне не хватает?
Большое вам спасибо.