PHPackages                             brutalhost/evocms-scraper - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. brutalhost/evocms-scraper

ActiveLibrary

brutalhost/evocms-scraper
=========================

Scraper module for evocms 3.x

211PHP

Since Jul 22Pushed 1y ago2 watchersCompare

[ Source](https://github.com/brutalhost/evocms-scraper)[ Packagist](https://packagist.org/packages/brutalhost/evocms-scraper)[ RSS](/packages/brutalhost-evocms-scraper/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

Scraper - парсер статических сайтов для Evolution CMS
=====================================================

[](#scraper---парсер-статических-сайтов-для-evolution-cms)

Парсер статических сайтов для Evolution CMS. Модуль написан на Laravel компонентах, совместим только с Evo 3. Для работы с DOM деревом используется библиотека [wasinger/htmlpagedom](https://github.com/wasinger/htmlpagedom "wasinger/htmlpagedom").

[![Форма парсера](https://camo.githubusercontent.com/95839f1226250233d333c54f7c103a658773c047ba1ffe9a5df8a0c866fdf9cc/68747470733a2f2f636f6d6d756e6974792e65766f636d732e72752f6173736574732f696d616765732f75706c6f6164732f323034352f49584e6f4b74653866677a3846484b2e706e67 "Форма парсера")](https://camo.githubusercontent.com/95839f1226250233d333c54f7c103a658773c047ba1ffe9a5df8a0c866fdf9cc/68747470733a2f2f636f6d6d756e6974792e65766f636d732e72752f6173736574732f696d616765732f75706c6f6164732f323034352f49584e6f4b74653866677a3846484b2e706e67)[![Список задач](https://camo.githubusercontent.com/48e5333fd14f6a335a28e7ebeea27f38d0b923f1c45d31567435d5802a030cf9/68747470733a2f2f636f6d6d756e6974792e65766f636d732e72752f6173736574732f696d616765732f75706c6f6164732f323034352f696b6c49625242394350454f6b45712e706e67 "Список задач")](https://camo.githubusercontent.com/48e5333fd14f6a335a28e7ebeea27f38d0b923f1c45d31567435d5802a030cf9/68747470733a2f2f636f6d6d756e6974792e65766f636d732e72752f6173736574732f696d616765732f75706c6f6164732f323034352f696b6c49625242394350454f6b45712e706e67)

Как работает:

- Создаются задания в админ-панели.
- Список PHP классов парсеров прописывается в config файле.
- Обработка заданий производится через админ-панель, либо с помощью artisan команд.

### Установка

[](#установка)

`cd core``php -d="memory_limit=-1" artisan package:installrequire brutalhost/evocms-scraper "*"``php artisan vendor:publish --provider="EvolutionCMS\Scraper\ScraperServiceProvider"``php artisan migrate`

### Разработка собственного парсера

[](#разработка-собственного-парсера)

#### Работа с файлами

[](#работа-с-файлами)

1. Создайте Laravel пакет (для этого подходит `EvolutionCMS\Main`).
2. Создайте папку для парсеров (например `EvolutionCMS\Main\Parsers`).
3. Создайте класс с наследованием от `EvolutionCMS\Scraper\Services\Parsers\AbstractParser`
4. Добавьте класс в конфигурационный файл `yourproject\core\custom\config\scraper.php`

#### AbstractParser

[](#abstractparser)

Основная логика абстрактного класса описана в конструкторе. Что в первую очередь нужно знать, чтобы создать свой класс парсера на его основе:

- `beforeProcess()` - здесь производится работа с начальным DOM деревом. Например, можно задать title, description для documentObject.
- `processHtml()` - сужение DOM, обрабокта тегов, классов и т.д.
- `afterProcess()` - работа с обработанным контентом, его сохранениие в поле content у documentObject.

Запускаются функции именно в такой последовательности. Помимо этого, в AbstractParser прописана логика получения данных по url из задания. Рекомендуется переписать AbstractParser для своих нужд.

#### Пример парсера

[](#пример-парсера)

```
