Написание Парсера С Использованием Xpath И Yii



Введение Иногда возникают задачи, когда нужно реализовать обертку для работы с API какого-то сервиса для нужд заказчика и сделать такую задачу в принципе довольно просто, но у сервиса не всегда есть это API, или возникает мысль, что лучше бы его не было, поэтому придется парсить всю контентную страницу.

В качестве примера для этой статьи мы будем использовать выданный демо Форум XenForo и заранее созданная тема, из которой мы будем парсить типичные данные: название, время создания и текст самой темы, при этом парсинг будет осуществляться в авторизованном аккаунте форума.

Все остальные данные можно взять по аналогии.

Сам парсер мы реализуем как компонент для удобства использования в Yii2.



Что нам нужно
  • Для парсинга страницы будет использоваться библиотека cURL, поэтому ее необходимо установить заранее.

  • Так как Yii не будет сильно использоваться (для логирования процесса парсера, самого вызова парсера и рендеринга результата), только для того, чтобы показать производительность самого парсера.

    Поэтому для таких задач вполне достаточно использовать Yii2 минимальный .



Давайте начнем
Давайте создадим компонент ParserXenforo. Поскольку события нам не нужны, вполне достаточно будет наследовать от Object.
  
   

<Эphp namespace app\components; use Yii; use \yii\base\Object; class ParserXenforo extends Object { }

Нам нужно добавить свойства и константы для загрузки страницы.

Сами свойства, хост, имя пользователя, пароль, curlOpt, будут заданы в настройках компонента.



<Эphp namespace app\components; use Yii; use \yii\base\Object; class ParserXenforo extends Object {

Теги: #парсинг #xpath #Yii #yii2 #php #Yii

Вместе с данным постом часто просматривают: