i-kostiuk/foxtrot-parser

foxtrot.com.ua - 解析器。根据需求实现方法。如果你对某个方法感兴趣,请留言,我会完善。

dev-master 2023-06-07 14:40 UTC

This package is not auto-updated.

Last update: 2024-09-26 11:14:36 UTC


README

composer require i-kostiuk/foxtrot-parser

  • laravel
use Foxtrot\Foxtrot;

$parser = new Foxtrot('https://www.foxtrot.com.ua/uk/shop/led_televizory_samsung_ue43t5300auxua.html');
  • php
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] => &#12304;&#1058;&#1077;&#1083;&#1077;&#1074;&#1110;&#1079;&#1086;&#1088; SAMSUNG UE43T5300AUXUA&#12305;&#1082;&#1091;&#1087;&#1080;&#1090;&#1080; &#1079;&#1072; 12999 &#1075;&#1088;&#1085; &#9665; &#1060;&#1054;&#1050;&#1057;&#1058;&#1056;&#1054;&#1058; &#9655; &#1110;&#1085;&#1090;&#1077;&#1088;&#1085;&#1077;&#1090;-&#1084;&#1072;&#1075;&#1072;&#1079;&#1080;&#1085; &#8470; &#10102; &#1074; &#1050;&#1080;&#1108;&#1074;&#1110; &#1090;&#1072; &#1059;&#1082;&#1088;&#1072;&#1111;&#1085;&#1110; &#10004; &#1043;&#1072;&#1088;&#1072;&#1085;&#1090;&#1110;&#1103; &#10004; &#1064;&#1074;&#1080;&#1076;&#1082;&#1072; &#1076;&#1086;&#1089;&#1090;&#1072;&#1074;&#1082;&#1072; &#9742; 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 - 根据错误 slugs 返回以乌克兰语表示的错误文本,这些 slugs 可以通过 getErrors 或 parse 获取
$error = $parser->getErrorBySlug('response_code');

// string(47) "Помилковий код відповіді."