rare / yii2-multiparser2
Расширения для парсинг сайтов
Installs: 38
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
Type:yii2-extension
Requires
- php: >=7.0
- yiisoft/yii2: ~2.0.0
This package is not auto-updated.
Last update: 2025-04-13 03:27:06 UTC
README
Расширения для парсинг сайтов
Installation
The preferred way to install this extension is through composer.
Either run
php composer.phar require --prefer-dist rare/yii2-multiparser2 "*"
or add
"rare/yii2-multiparser2": "*"
to the require section of your composer.json
file.
Usage
Yii2 Multiparser
Минимальные требования: php 7
Универсальна библиотека для парсинга и обработки контента с различных сайтов. Multiparser использует как обычную загрузку через curl, так и мульти - загрузку multicurl, а также популярную библиотеку php simple dom parser (официальный сайт с документацией - http://simplehtmldom.sourceforge.net/manual.htm ) для обработки полученных данных.
Использование:
1. Добавляем компонент в конфигурацию фреймворка Yii2 (пример с использованием консольных команд Yii2):
'components' => [
'multiparser' => [
'class' => 'multiparser\GetMultiContent',//класс
'message' => true,//Отображать вывод процесса работы скрипта, по умолчанию false
'cookies_path' => '@app/runtime/curl/my_cookies_parser.txt', // путь к записи файла cookies парсируемых сайтов, по умолчанию ''
],
],
2.Загрузка с высокой скоростью контента используя multicurl. Создаем контроллер консольной комманды фреймворка Yii2:
<?php
namespace app\commands;
use Yii;
class ParserController extends \yii\console\Controller{
public function actionIndex(){
//массив ссылок
$url = [
'http://rozetka.com.ua/prestigio_smartbook_141a03_psb141a03bfw_mb_cis/p12467569/',
'http://rozetka.com.ua/acer_nx_gfteu_004/p13720121/',
'http://rozetka.com.ua/lenovo_80r20069ua/p5905617/',
'http://rozetka.com.ua/acer_nx_gceeu_098/p13716558/'
];
/**
* GetMultiContent->init($url, $no_parser = false) инициализирует парсер, принимает два параметра:
* $url type string - ссылки парсируемых сайтов, если передать массив отработает мультизагрузчик
* если строку отработает обычный загрузчик
* $no_parser type boolean - true, не создавать объект Simple_html_dom контент для обработки контента
* и вернет строку, false, создасть объект автоматически (по умолчанию false)
*/
foreach(Yii::$app->multiparser->init($url) as $teg){
foreach($teg->find('a') as $atribut) //обработка библиотекой php simple dom parser (официальный сайт с документацией - http://simplehtmldom.sourceforge.net/manual.htm )
echo $atribut->href . "\n";
echo Yii::$app->multiparser->info; //URL возвращаемого дескриптора
}
}
}
3. Загрузка в обычном режиме:
<?php
namespace app\commands;
use Yii;
class ParserController extends \yii\console\Controller{
public function actionIndex(){
$url = 'http://rozetka.com.ua/prestigio_smartbook_141a03_psb141a03bfw_mb_cis/p12467569/';
/**
* GetMultiContent->init($url) инициализирует парсер, принимает два параметра:
* $url type string - ссылки парсируемых сайтов, если передать массив отработает мультизагрузчик
* если строку отработает обычный загрузчик
* $no_parser type boolean - true, не создавать объект Simple_html_dom контент для обработки контента
* и вернет строку, false, создасть объект автоматически (по умолчанию false)
*/
$html = Yii::$app->multiparser->init($url);
foreach($html->find('a') as $element)
echo $element->href . "\n";
}
}