Здравствуйте.
Возникла передо мной задача написать парсер контента сторонних сайтов на php. Идеология работы этого модуля следующая:
— администратор задает правила парсинга конкретного сайта (страницы), присваивая определенным селекторам (тегам) веса;
— модель парсит сайт (страницу);
— полученный после парсинга результат мы анализируем, применяя к нему правила, введеные администратором. На выходу мы должны получить контекст страницы вида array('word1'=>int(...), 'word2'=>int(...)...). Здесь word1 — это слово, выделенное пауком со страницы, а int(...) — это вес содержимого, полученный после применения к результату парсинга правил администратора. Т.о. мы можем получить примерный контест страницы, т.е. система получит представление о выжимке содержимого с анализируемого ресурса.
Парсинг контента — это не проблема. Можно использовать нативный
DomDocument — XPath (быстро по скорости, но затратно по созданию и поддержке),
Zend_Dom_Query или
phpQuery или
Нокогири(
тема) хабраюзера w999d — медленнее по скорости, зато проще по написанию, хорошие возможности для парсинга. (Если кто-то знает хорошие библиотеки для парсинга, не указанные мной, — подскажите.)
Так вот, сам вопрос, каким образом организовать анализ и разбор содержимого на странице, чтобы на выходе получить некую выжимку, контекст содержимого (сайты для парсинга будут разнообразные по структуре и содержанию). Есть ли открытые решения (open-source crawlers), которые бы эффективно анализировали страницу? Может быть вы подскажите информацию по построению поискового индекса?
Прошу прощения за несколько расплывчатое изложение вопроса, спасибо за внимание!