Сведения о вопросе

GANGST1ER

21:06, 1st October, 2020

Теги

PHP   Crawling    

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

Просмотров: 271   Ответов: 4

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


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


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

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

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


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


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


Прошу прощения за несколько расплывчатое изложение вопроса, спасибо за внимание!



  Сведения об ответе

+-*/

17:04, 27th September, 2020

Yahoo Pipes?


  Сведения об ответе

VERSUION

16:26, 27th September, 2020

1) xpath (память)
2) учите статистику (и читайте книги по анализу данных)
непростое дело начали )


  Сведения об ответе

piter

05:53, 28th September, 2020

# «PHPQuery»
# «Simple HTML DOM»
habrahabr.ru/blogs/php/114323/


  Сведения об ответе

ITSME

19:55, 29th September, 2020

Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться