composer require i-kostiuk/foxtrot-parser
use Foxtrot\Foxtrot;
$parser = new Foxtrot('https://www.foxtrot.com.ua/uk/shop/led_televizory_samsung_ue43t5300auxua.html');
use Foxtrot\Foxtrot;
require __DIR__ . "/vendor/autoload.php";
$parser = new Foxtrot('https://www.foxtrot.com.ua/uk/shop/led_televizory_samsung_ue43t5300auxua.html');
При створення екземпляру класу Foxtrot, в конструктор передаємо лінк на сторінку. Зараз доступний парсинг сторінок:
- Картка товару
- (Незабаром будуть інші)
$parser = new Foxtrot('https://www.foxtrot.com.ua/uk/shop/led_televizory_samsung_ue43t5300auxua.html');
Під капотом у конструкторі робляться деякі попередні перевірки та одразу доступні наступні методи:
- getStatusCode - повертає код відповіді. Успішною вважається 200
$statusCode = $parser->getStatusCode(); // ex: 200
- getBody - повертає тіло відповіді. Зазвичай це html, json, xml.
$body = $parser->getBody(); // ex: <!DOCTYPE html><html.......html>
- getHeaders - повертає заголовки відповіді
$headers = $parser->getHeaders();
- parse - парсить сторінку та повертає результат
$response = $parser->parse();
// Product
/*
Array
(
[type] => Product
[data] => Array
(
[title] => Телевізор SAMSUNG UE43T5300AUXUA
[price] => 12999
[currency] => UAH
[availability] => 1
[brand] => SAMSUNG
[rating] => 4
[description] => 【Телевізор SAMSUNG UE43T5300AUXUA】купити за 12999 грн ◁ ФОКСТРОТ ▷ інтернет-магазин № ❶ в Києві та Україні ✔ Гарантія ✔ Швидка доставка ☎ 0-800-300-353
[images] => Array
(
[0] => https://files.foxtrot.com.ua/PhotoNew/img_0_977_3587_0.jpg
[1] => https://files.foxtrot.com.ua/PhotoNew/img_0_977_3587_3.jpg
[2] => https://files.foxtrot.com.ua/PhotoNew/img_0_977_3587_6.jpg
[3] => https://files.foxtrot.com.ua/PhotoNew/img_0_977_3587_1.jpg
[4] => https://files.foxtrot.com.ua/PhotoNew/img_0_977_3587_4.jpg
[5] => https://files.foxtrot.com.ua/PhotoNew/img_0_977_3587_8.jfif
[6] => https://files.foxtrot.com.ua/PhotoNew/img_0_977_3587_5.jpg
[7] => https://files.foxtrot.com.ua/PhotoNew/img_0_977_3587_2.jpg
[8] => https://files.foxtrot.com.ua/PhotoNew/img_0_977_3587_1_1_638005703139736423.jpg
)
[sku] => 6557914
)
[errors] => Array
(
)
)
*/
- getErrors - повертає всі помилки. Можна отримати на різних етапах (до та після парсингу)
$parser = new Foxtrot('https://www.foxtrot.com.ua/uk/shop/led_telua.html');
$response = $parser->parse();
$errors = $parser->getErrors();
Array
(
[0] => response_code
)
- getErrorBySlug - Повертає текст помилки українською мовою по слагу, який можна отримати із getErrors або parse
$error = $parser->getErrorBySlug('response_code');
// string(47) "Помилковий код відповіді."