i-kostiuk / foxtrot-parser
foxtrot.com.ua - парсер. Реалізовую методи за потребою. Якщо цікавить якийсь метод - пишіть, дороблю.
dev-master
2023-06-07 14:40 UTC
Requires
- guzzlehttp/guzzle: ^7.0
- symfony/css-selector: ^6.3
- symfony/dom-crawler: ^6.3
This package is not auto-updated.
Last update: 2025-01-02 12:27:48 UTC
README
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) "Помилковий код відповіді."