Я создаю небольшую специализированную поисковую систему для информации о призах. Двигатель будет собирать только определенные сегменты данных на каждом сайте. Мой план состоит в том, чтобы разделить процесс на два этапа.Простой скрипинг экрана и анализ в .NET.
Простая очистка экрана на основе URL-адреса, указывающего на страницу, где существует сегмент, который мне нужен. Самый простой способ сделать это просто для использования объекта WebClient и получения полного HTML-кода?
После того, как HTML потянут и сохранен, проанализируйте его с помощью какого-либо скрипта и вытащите только сегмент и значения, которые мне нужны (например, стоимость цены продукта). Моя проблема заключается в том, что этот сценарий каким-то образом должен быть уникальным для каждого сайта, который я вытягиваю, он должен уметь обрабатывать действительно уродливый HTML (поэтому я не думаю, что XSLT будет делать ...), и мне нужно иметь возможность его изменить на лету, поскольку целевые сайты обновляют и изменяют. Я, наконец, принять конкретные значения и записать их в базу данных, чтобы сделать их доступными для поиска
Не могли бы вы дать мне несколько советов о том, как архитектору лучший способ? Не могли бы вы поступить иначе, чем описано выше?
Как идея трубопровода! Спасибо – Riri
http://www.openpipeline.org/ имеет открытый исходный код, предназначенный для обработки документов для поисковых систем. Я еще не посмотрел на него, но это может дать вам некоторые идеи. Другая вещь, котор нужно держать в разуме с этим будет threading и масштабируемостью. По мере роста вашей коллекции сайтов вы захотите обработать несколько документов одновременно. Windows Workflow Foundation (http://msdn.microsoft.com/en-us/netframework/aa663328.aspx) может также сформировать ваш «конвейер». – Glenn