Информация по паукам (crawler, синтаксический анализатор) в PHP?

Здравствуйте.


Возникла передо мной задача написать парсер контента сторонних сайтов на php. Идеология работы этого модуля следующая:


— администратор задает правила парсинга конкретного сайта (страницы), присваивая определенным селекторам (тегам) веса;

— модель парсит сайт (страницу);

— полученный после парсинга результат мы анализируем, применяя к нему правила, введеные администратором. На выходу мы должны получить контекст страницы вида array('word1'=>int(...), 'word2'=>int(...)...). Здесь word1 — это слово, выделенное пауком со страницы, а int(...) — это вес содержимого, полученный после применения к результату парсинга правил администратора. Т.о. мы можем получить примерный контест страницы, т.е. система получит представление о выжимке содержимого с анализируемого ресурса.


Парсинг контента — это не проблема. Можно использовать нативный DomDocument — XPath (быстро по скорости, но затратно по созданию и поддержке), Zend_Dom_Query илиphpQuery или Нокогири(тема) хабраюзера w999d — медленнее по скорости, зато проще по написанию, хорошие возможности для парсинга. (Если кто-то знает хорошие библиотеки для парсинга, не указанные мной, — подскажите.)


Так вот, сам вопрос, каким образом организовать анализ и разбор содержимого на странице, чтобы на выходе получить некую выжимку, контекст содержимого (сайты для парсинга будут разнообразные по структуре и содержанию). Есть ли открытые решения (open-source crawlers), которые бы эффективно анализировали страницу? Может быть вы подскажите информацию по построению поискового индекса?


Прошу прощения за несколько расплывчатое изложение вопроса, спасибо за внимание!
  • Вопрос задан
  • 3637 просмотров
Пригласить эксперта
Ответы на вопрос 4
Ogra
@Ogra
Yahoo Pipes?
Ответ написан
Комментировать
andrew_tch
@andrew_tch
1) xpath (память)
2) учите статистику (и читайте книги по анализу данных)
непростое дело начали )
Ответ написан
Комментировать
KorP
@KorP
Кратко о себе
# «PHPQuery»
# «Simple HTML DOM»
habrahabr.ru/blogs/php/114323/
Ответ написан
Комментировать
@egorist
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы