Download the PHP package rollun-com/rollun-parser without Composer
On this page you can find all versions of the php package rollun-com/rollun-parser. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download rollun-com/rollun-parser
More information about rollun-com/rollun-parser
Files in rollun-com/rollun-parser
Package rollun-parser
Short Description Foundation for parsers
License BSD-3-Clause
Informations about the package rollun-parser
rollun-parser
rollun-parser
- библиотека, которая предоставляет базовые возможности для написание парсинга сайтов.
На основе какркаса данной библиотеки можно пострить вполне ефективную систему парсинга.
Схема каркаса:
Основные компоненты:
Task source
- это модуль системы парсинга с которого все начинается. Задача этого модуля поставить в очередь для загрузчика всю информацию, которая может быть понадобиться для того чтобы загрузить и обработать страницу. Зачастую это будут объекты, которые после парсинга некой страницы хотят узнать больше информации о объекте парсинга.Task queue
- это очередь, которая передает сообщения отTask source
кLoader
Worker manager
- это объект, который управляет процессами, запущенными под руководством этим же объектом.Process
- подробнее тут, єто единица управления дляWorker manager
. Если процессу указать максимальное время жизни, то процессом будет теперь заботитьсяPid killer
и убьет процесс с истечением указаного времени.Worker
- это объект, который берет сообщение с очередиTask queue
и запускаетLoader
с данными из очереди. Немаловажный факт: если попытка загрузки страницы потерпела неудачи -Worker
не будет удалять сообщение из очереди, таким образом, оно появиться через некоторое время (time-in-flight
) снова в очереди и буде отправлено на обработкуLoader
снова. Если загрузка прошла успешно - сообщение будет удалено из очереди. В системеWorker
есть частьюProcess
и поэтому можно настраивать вWorker manager
какое макчимальное количество воркеров может работать одновременно.Loader
- загружает страницу з сайта и валидирует ее с помощью указанных валидаторов. Если страница валидна, то она буде записана вDocument storage
, а информация о ней записана в очередьDocument queue
для подальшего парсинга.Parser
- подсистемаWorker manager
->Process
->Worker
->Parser
работает аналогично сWorker manager
->Process
->Worker
->Loader
.Parser
после успешного парсинга страницы запишет данные в указанное хранилищеParser Result Storage
.Proxy manager
- подсистема которая управляет выдачей прокси. Прокси выдаются всегда случайные, но частота зависит от того насколько у прокси хорошая оценка и как давно он не был использован. Клиент который работает с прокси (в нашем случае этоLoader
) должен вернуть фидбек про прокси (поставить эму оценку от 1 до 10).Proxy manager
гарантирует что у него всегда найдутся для тебя свеженькие прокси.Parser Result Storage
- как уже было выше сказано, это хранилище, кудаParser
сохраняет данные после парсинга.
Загрузчики
Библиотека предусматривает несколько базовых объектов для использования. Одним из таких есть AbstractLoader
. Этот объект
предназначен для того чтобы загружать страницы з сайта, валидировать их, сохранять документы в персистентном хранилище
(в данном случае это файл) и записывать задание на парсинг в очередь. Для того чтобы написать свои загрузчики отнаследуйтесь
от этого объекта и реализуйте/переопределите методы если это требуется. В очередь передается сообщение в виде массива.
Под ключом filepath
в этом массиве будет имя файла, где сохранился скачанный документ.
Парсера
Подобным объектом для парсинга есть AbstractParser
. Обязаности этого объекта это распарсить файл, путь к которому указан
в массиве (сообщение из очереди документов) и сохранить результат в соответствующие хранилище.
TaskResource
TaskResource
- этот объект наследует QueueFiller
из библиотеки
rollun-com/rollun-callback. Его задача взять нужные конфиги и создать
объект ServerRequestInterface
, который будет описывать запрос для загрузчика.
Пример конфигов:
All versions of rollun-parser with dependencies
guzzlehttp/guzzle Version ^6.5.8
laminas/laminas-servicemanager Version ^3.10
rollun-com/rollun-callback Version ^7.5
rollun-com/rollun-datastore Version ^9.0.3|^10.0
rollun-com/rollun-dic Version ^4.0
rollun-com/rollun-utils Version ^7.1.4|^8.0