1. Вступайте в наш Telegram чат: https://t.me/a_parser Нас уже 2600+ и мы растем!
    Скрыть объявление

API возможно ли сделать так?

Тема в разделе "Техническая поддержка", создана пользователем XyaH, 4 сен 2016.

  1. XyaH

    XyaH A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    2 апр 2015
    Сообщения:
    35
    Симпатии:
    6
    Здравствуйте с опциями вроде все понятно но вот есть загвоздка как передать апарсеру фильтр по регулярному выражению вот код:
    Код:
    function aparser($s,$minblock){
    $aparser = 'http://host:9091/API';
    $request = json_encode(
        array(
        'action' => 'oneRequest',
            'data' => array (
            'options' => array (
                0 => array (
                    'value' => $minblock,
                    'type' => 'override',
                    'id' => 'minblocklength',
                    ),
                1 => array (
                    'value' => '200 ok',
                    'type' => 'override',
                    'id' => 'goodstatus',
                    ),
                ),
            'parser' => 'HTML::TextExtractor',
            'preset' => 'noproxy',
            'threads' => 1,
            'query' => $s
            ),
            'password' => 'pass'
        )
    
    );
    
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $aparser);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $request);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Length: ' . strlen($request)));
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: text/plain; charset=UTF-8'));
    $response = curl_exec($ch);curl_close($ch);
    $response = json_decode($response, true);
    $text =  $response['data']['resultString'];
    return $text;
    }
    возможно ли как то передать именно этот параметр? http://prntscr.com/cdxv0o
     
  2. Forbidden

    Forbidden Administrator
    Команда форума A-Parser Enterprise

    Регистрация:
    9 мар 2013
    Сообщения:
    3.337
    Симпатии:
    1.795
    Любой параметр можно передать - как именно проще всего посмотреть через API http://a-parser.com/wiki/user-api/#gettaskconf - добавить задание в очередь через интерфейс и запросить его конфиг
     
  3. XyaH

    XyaH A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    2 апр 2015
    Сообщения:
    35
    Симпатии:
    6
    Спасибо буду пробовать
     
  4. XyaH

    XyaH A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    2 апр 2015
    Сообщения:
    35
    Симпатии:
    6
    Вообщем чет не получается у меня получить нужные фильтры в апи поправьте плиз
    получаю конфиг http://prnt.sc/ckd4xo парсера http://prnt.sc/ckd4f9 вроде ничего сложного пробую:
    Код:
    $aparser = 'http://хост/API';
    $request = json_encode(
        array(
        'action' => 'oneRequest',
            'data' => array (
            'options' => array (
                0 => array (
                    'value' => 200,
                    'type' => 'override',
                    'id' => 'minblocklength',
                    ),
                1 => array (
                    'value' => '200 ok',
                    'type' => 'override',
                    'id' => 'goodstatus',
                    ),                       
                2 => array (
                    'value' => '[,\w\d]{10,}[!?.]',
                    'type' => 'filter',
                    'option' => array(
                    'result' =>array(
                         0 => 'texts',
                         1 => 'text',
                         ),
                    ),
                    'filterType' => 'rematch',
                    ),
                3 => array (
                    'value' => '\n',
                    'type' => 'filter',
                    'option' => array(
                    'result' =>array(
                         0 => 'texts',
                         1 => 'text',
                         ),
                    ),     
                    'filterType' => 'renotmatch',
                    ),   
                ),
            'parser' => 'HTML::TextExtractor',
            'preset' => 'noproxy',
            'threads' => 1,
            'query' => 'http://www.bolshoyvopros.ru/questions/447558-ves-pachki-bumagi-a4-skolko-vesit-upakovka-bumagi-a4.html'
            ),
            'password' => 'пасс'
        )
    
    );
    
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $aparser);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $request);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Length: ' . strlen($request)));
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: text/plain; charset=UTF-8'));
    $response = curl_exec($ch);curl_close($ch);
    $response = json_decode($response, true);
    $text =  $response['data']['resultString'];
    print $text;
    и получаю пустую страницу если убираю из кода
    Код:
        'option' => array(
                    'result' =>array(
                         0 => 'texts',
                         1 => 'text',
                         ),
                    ),
    получаю пустоту и лог
    "Use of uninitialized value in pattern match (m//) at build/core.to_build.pl line 22885.
    Use of uninitialized value in hash element at build/core.to_build.pl line 22892."
    помогите разобраться
     
  5. XyaH

    XyaH A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    2 апр 2015
    Сообщения:
    35
    Симпатии:
    6
    методом тыка вроде разобрался
    неправильно:
    Код:
        'option' => array(
                    'result' =>array(
                         0 => 'texts',
                         1 => 'text',
                         ),
                    ),
    правильно:
    Код:
    'result' =>array(0 => 'texts',1 => 'text')
    так работает но подожду еще что поддержка скажет
     
  6. Forbidden

    Forbidden Administrator
    Команда форума A-Parser Enterprise

    Регистрация:
    9 мар 2013
    Сообщения:
    3.337
    Симпатии:
    1.795
    конечно так правильно, и на первом скрине это видно
     

Поделиться этой страницей