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

php api

Тема в разделе "Техническая поддержка лицензии Enterprise", создана пользователем kaznokrad, 31 дек 2017.

  1. kaznokrad

    kaznokrad A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    14 июн 2014
    Сообщения:
    34
    Симпатии:
    3
    Не получается подключить 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
    ));
    Не получилось
     
  2. kaznokrad

    kaznokrad A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    14 июн 2014
    Сообщения:
    34
    Симпатии:
    3
    Удалось завести скрипт следующим образом

    Код:
    <?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

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

    Вложения:

  3. Support Юра

    Support Юра A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    13 июн 2017
    Сообщения:
    122
    Симпатии:
    60
    Здравствуйте.
    Настройте шаблон для разгадывания рекапчи и выберите его в задании. Подробнее о том как настроить рекапчу здесь
     
  4. kaznokrad

    kaznokrad A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    14 июн 2014
    Сообщения:
    34
    Симпатии:
    3
    Все настроено, тестовое задание работает
     
  5. Forbidden

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

    Регистрация:
    9 мар 2013
    Сообщения:
    3.199
    Симпатии:
    1.713
    Show API request показывает запрос в JSON, соответственно чтобы получить из него PHP структуру надо сделать json_decode(о чем кстати уже было рассказано в личной переписке)

    Рекомендую почитать мануалы по json_encode/json_decode http://php.net/manual/ru/function.json-decode.php
     
    div нравится это.

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