Всем привет!
Сразу хочу остановить холивар, по поводу того, что php для парсинга плохо подходит - техническое задание таково, что нужно писать на PHP с использование Yii2 и это не обсуждается заказчиком. Более того, на сервере стоит еще версия php 5.6.
Парсить нужно с нескольких сайтов и заносить это все в базу данных - объёмы информации достаточно большие.
Для меня не проблема решить это все даже с использование curl/wget, парсить регулярками, и создать демонов для постоянной работы в фоновом режиме. Но не хотелось бы изобретать велосипеды, особенно не хочется парсить html регулярными выражениями.
Потому собственно вопрос к тем, кто уже создавал что-то подобное на PHP. Какие сейчас существуют наиболее подходящие инструменты для таких задач? Может уже есть что-то "всё в одном флаконе"? Или хотя бы по частям собрать всё в одну систему?
Спасибо за ответ!
Zend\Dom\Query понравился по описанию, есть и поддержка и XPath и селекторов наподобие jquery, похоже то, что нужно. Только не знаю как он справляется с невалидным html-кодом. Типа
<b><i>text</b></i>
или
<span tag="value"">
Надо будет его пощупать.
Guzzle тоже понравился. У меня была своя надстройка над curl, но она уже устарела, еще для php 5.3 писал. Опять же наличие возможности установить Guzzle из гитхаба в моем случае большой плюс.
Остается открытым вопрос - при чем тут Yii2. Сделать на нем какую-то морду с отчетами?
На Yii2 уже сделаны у заказчика много вещей, в том числе и сайт и админка. Собственно для этой админики и нужно сделать дополнительный модуль для автоматического пополнения и слежения за актуальностью базы данных.
Спасибо за ответ.
Для меня парсинг не в новинку. Уже приходилось делать достаточно серьезные системы, в том числе и по работе с китайскими сайтами с переводом данных и использованием проксей, обхода капчей и т.д. Но я обычно использовал либо Perl, либо Python, а тут вдруг жесткие условия сделать на PHP.
Поковырялся в инете, но толи не так искал, толи нет чего-то достойного на этом языке для таких целей.