php api

kaznokrad

A-Parser Enterprise License
A-Parser Enterprise
Не получается подключить JSON задание для php из документации

Код из мануала:

Код:
$aparser = 'http://127.0.0.1:9091/API';

$request = json_encode(array(
    'action' => 'oneRequest',
    'data' => array (
        'parser' => 'SE::Google',
        'preset' => 'Pages Count use Proxy',
        'query' => 'test'
    ),
    'password' => 'pass'
));

$ch = curl_init($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);
echo $response['data']['resultString'];

Задание из парсера
Код:
{
  "password": "",
  "action": "addTask",
  "data": {
    "preset": "sdor-api",
    "configPreset": "default",
    "parsers": [
      [
        "SE::Google::Modern",
        "default",
        {
          "type": "override",
          "id": "proxyretries",
          "value": "13"
        },
        {
          "type": "override",
          "id": "useproxy",
          "value": true
        },
        {
          "type": "override",
          "id": "queryformat",
          "value": "$query"
        },
        {
          "type": "override",
          "id": "formatresult",
          "value": "$serp.format('$snippet\\n')"
        },
        {
          "type": "override",
          "id": "proxybannedcleanup",
          "value": "0"
        },
        {
          "type": "override",
          "id": "pagecount",
          "value": 10
        },
        {
          "type": "override",
          "id": "linksperpage",
          "value": 100
        },
        {
          "type": "override",
          "id": "Util_ReCaptcha2_preset",
          "value": "rc2 xevil"
        },
        {
          "type": "override",
          "id": "lr",
          "value": ""
        }
      ]
    ],
    "resultsFormat": "$p1.preset",
    "resultsSaveTo": "file",
    "resultsFileName": "$datefile.format().txt",
    "additionalFormats": [],
    "resultsUnique": "no",
    "queriesFrom": "text",
    "queryFormat": [
      "$query"
    ],
    "uniqueQueries": false,
    "saveFailedQueries": false,
    "iteratorOptions": {
      "onAllLevels": false,
      "queryBuildersAfterIterator": false,
      "queryBuildersOnAllLevels": false
    },
    "resultsOptions": {
      "overwrite": false
    },
    "doLog": "no",
    "keepUnique": "No",
    "moreOptions": false,
    "resultsPrepend": "",
    "resultsAppend": "",
    "queryBuilders": [],
    "resultsBuilders": [
      {
        "source": [
          0,
          [
            "serp",
            "snippet"
          ]
        ],
        "type": "removeHtml",
        "array": "serp",
        "to": "snippet"
      }
    ],
    "configOverrides": [],
    "runTaskOnComplete": null,
    "useResultsFileAsQueriesFile": false,
    "runTaskOnCompleteConfig": "default",
    "toolsJS": "",
    "prio": 5,
    "queries": "google"
  }
}

Пробовал добавить его в
Код:
$request = json_encode(array(
    CODE
));

Не получилось
 
Удалось завести скрипт следующим образом

Код:
<?php

$aparser = 'http://ip:9091/API';

// $request = json_encode(array(
//     'action' => 'oneRequest',
//     'data' => array (
//         'parser' => 'SE::Google',
//         'preset' => 'Pages Count use Proxy',
//         'query' => 'test'
//     ),
//     'password' => 'pass'
// ));

$request = <<<JSON
{
  "password": "",
  "action": "addTask",
  "data": {
    "preset": "sdor-api",
    "configPreset": "default",
    "parsers": [
      [
        "SE::Google::Modern",
        "default",
        {
          "type": "override",
          "id": "proxyretries",
          "value": "13"
        },
        {
          "type": "override",
          "id": "useproxy",
          "value": true
        },
        {
          "type": "override",
          "id": "queryformat",
          "value": "$query"
        },
        {
          "type": "override",
          "id": "formatresult",
          "value": "$serp.format('$snippet\\n')"
        },
        {
          "type": "override",
          "id": "proxybannedcleanup",
          "value": "0"
        },
        {
          "type": "override",
          "id": "pagecount",
          "value": 10
        },
        {
          "type": "override",
          "id": "linksperpage",
          "value": 100
        },
        {
          "type": "override",
          "id": "Util_ReCaptcha2_preset",
          "value": "rc2 xevil"
        },
        {
          "type": "override",
          "id": "lr",
          "value": ""
        }
      ]
    ],
    "resultsFormat": "$p1.preset",
    "resultsSaveTo": "file",
    "resultsFileName": "$datefile.format().txt",
    "additionalFormats": [],
    "resultsUnique": "no",
    "queriesFrom": "text",
    "queryFormat": [
      "$query"
    ],
    "uniqueQueries": false,
    "saveFailedQueries": false,
    "iteratorOptions": {
      "onAllLevels": false,
      "queryBuildersAfterIterator": false,
      "queryBuildersOnAllLevels": false
    },
    "resultsOptions": {
      "overwrite": false
    },
    "doLog": "no",
    "keepUnique": "No",
    "moreOptions": false,
    "resultsPrepend": "",
    "resultsAppend": "",
    "queryBuilders": [],
    "resultsBuilders": [
      {
        "source": [
          0,
          [
            "serp",
            "snippet"
          ]
        ],
        "type": "removeHtml",
        "array": "serp",
        "to": "snippet"
      }
    ],
    "configOverrides": [],
    "runTaskOnComplete": null,
    "useResultsFileAsQueriesFile": false,
    "runTaskOnCompleteConfig": "default",
    "toolsJS": "",
    "prio": 5,
    "queries": "privet"
  }
}
JSON;

$ch = curl_init($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'));
$httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);

$response = curl_exec($ch);
curl_close($ch);

//$response = json_decode($response, true);
echo $response['data']['resultString'];


Задание добавилось в парсер но не выполняется, скрин добавил в аттач



eyJwcmVzZXQiOiJzZG9yLWFwaSIsInZhbHVlIjp7InByZXNldCI6InNkb3ItYXBp
IiwicGFyc2VycyI6W1siU0U6Okdvb2dsZTo6TW9kZXJuIiwiZGVmYXVsdCIseyJ0
eXBlIjoib3ZlcnJpZGUiLCJpZCI6InByb3h5cmV0cmllcyIsInZhbHVlIjoiMTMi
fSx7InR5cGUiOiJvdmVycmlkZSIsImlkIjoidXNlcHJveHkiLCJ2YWx1ZSI6dHJ1
ZX0seyJ0eXBlIjoib3ZlcnJpZGUiLCJpZCI6InF1ZXJ5Zm9ybWF0IiwidmFsdWUi
OiIkcXVlcnkifSx7InR5cGUiOiJvdmVycmlkZSIsImlkIjoiZm9ybWF0cmVzdWx0
IiwidmFsdWUiOiIkc2VycC5mb3JtYXQoJyRzbmlwcGV0XFxuJykifSx7InR5cGUi
OiJvdmVycmlkZSIsImlkIjoicHJveHliYW5uZWRjbGVhbnVwIiwidmFsdWUiOiIw
In0seyJ0eXBlIjoib3ZlcnJpZGUiLCJpZCI6InBhZ2Vjb3VudCIsInZhbHVlIjox
MH0seyJ0eXBlIjoib3ZlcnJpZGUiLCJpZCI6ImxpbmtzcGVycGFnZSIsInZhbHVl
IjoxMDB9LHsidHlwZSI6Im92ZXJyaWRlIiwiaWQiOiJVdGlsX1JlQ2FwdGNoYTJf
cHJlc2V0IiwidmFsdWUiOiJyYzIgeGV2aWwifSx7InR5cGUiOiJvdmVycmlkZSIs
ImlkIjoibHIiLCJ2YWx1ZSI6IiJ9XV0sInJlc3VsdHNGb3JtYXQiOiIkcDEucHJl
c2V0IiwicmVzdWx0c1NhdmVUbyI6ImZpbGUiLCJyZXN1bHRzRmlsZU5hbWUiOiIk
ZGF0ZWZpbGUuZm9ybWF0KCkudHh0IiwiYWRkaXRpb25hbEZvcm1hdHMiOltdLCJy
ZXN1bHRzVW5pcXVlIjoibm8iLCJxdWVyaWVzRnJvbSI6InRleHQiLCJxdWVyeUZv
cm1hdCI6WyIkcXVlcnkiXSwidW5pcXVlUXVlcmllcyI6ZmFsc2UsInNhdmVGYWls
ZWRRdWVyaWVzIjpmYWxzZSwiaXRlcmF0b3JPcHRpb25zIjp7Im9uQWxsTGV2ZWxz
IjpmYWxzZSwicXVlcnlCdWlsZGVyc0FmdGVySXRlcmF0b3IiOmZhbHNlLCJxdWVy
eUJ1aWxkZXJzT25BbGxMZXZlbHMiOmZhbHNlfSwicmVzdWx0c09wdGlvbnMiOnsi
b3ZlcndyaXRlIjpmYWxzZX0sImRvTG9nIjoibm8iLCJrZWVwVW5pcXVlIjoiTm8i
LCJtb3JlT3B0aW9ucyI6ZmFsc2UsInJlc3VsdHNQcmVwZW5kIjoiIiwicmVzdWx0
c0FwcGVuZCI6IiIsInF1ZXJ5QnVpbGRlcnMiOltdLCJyZXN1bHRzQnVpbGRlcnMi
Olt7InNvdXJjZSI6WzAsWyJzZXJwIiwic25pcHBldCJdXSwidHlwZSI6InJlbW92
ZUh0bWwiLCJhcnJheSI6InNlcnAiLCJ0byI6InNuaXBwZXQifV0sImNvbmZpZ092
ZXJyaWRlcyI6W10sInJ1blRhc2tPbkNvbXBsZXRlIjpudWxsLCJ1c2VSZXN1bHRz
RmlsZUFzUXVlcmllc0ZpbGUiOmZhbHNlLCJydW5UYXNrT25Db21wbGV0ZUNvbmZp
ZyI6ImRlZmF1bHQiLCJ0b29sc0pTIjoiIiwicHJpbyI6NSwicXVlcmllcyI6ImFw
cGxlIG1hYyIsImNhdGVnb3J5IjpbInRlc3QiXX19

Задача, получить контент через апи, но парсер получает результаты с задержкой так как разгадывает рекачпу.
 

Вложения

  • Скриншот 2018-01-01 14.41.40.png
    Скриншот 2018-01-01 14.41.40.png
    169 КБ · Просмотры: 15
Здравствуйте.
Настройте шаблон для разгадывания рекапчи и выберите его в задании. Подробнее о том как настроить рекапчу здесь
 
Все настроено, тестовое задание работает
 
Show API request показывает запрос в JSON, соответственно чтобы получить из него PHP структуру надо сделать json_decode(о чем кстати уже было рассказано в личной переписке)

Рекомендую почитать мануалы по json_encode/json_decode http://php.net/manual/ru/function.json-decode.php
 
  • Like
Реакции: div
Назад
Верх