メインコンテンツへスキップ

APIの概要

A-ParserはAPI経由の制御をサポートしており、他のプログラムやスクリプトからA-Parserの機能を利用することで、複雑なシステム(SaaSなど)の一部としてスクレイパーを統合することが可能です。

APIはHTTPプロトコルとJSONデータシリアル化に基づいて実装されており、あらゆるプログラミング言語から利用できます。

curl http://127.0.0.1:9091/API \
-H 'Content-Type: application/json' \
-d '{"password":"123","action":"ping"}'

結果:

{"success":1,"data":"pong"}

使用例

  • 任意のスクレイパーに対する単一またはバッチリクエストの呼び出しと処理。例:
    • クエリに基づいたGoogleからのリンク一覧の取得
    • Google Translate/Yandex Translate/DeepL翻訳を通じたテキスト翻訳
    • ドメインの登録日、Alexaランクなどのパラメータ取得
  • タスクのキューへの追加と結果の取得
  • タスクキューの管理とタスク状態の監視
  • スクレイパーファームの動作自動化

用意されているクライアント

A-Parserには、API操作を簡素化するための既成のクライアントが用意されています:

NodeJS

Perl

PHP

Python

リクエストの形成

A-Parserとのやり取りは、HTTPプロトコルを用い、リクエストとレスポンスをJSONでシリアル化して行われます。APIへのリクエストを行うには、以下のアドレスに対してPOSTリクエストを実行する必要があります:

http://IP-サーバー:9091/API

以下のヘッダーを必ず送信する必要があります:

  • content-length
  • content-type: application/json

リクエストボディには、JSONシリアル化された構造を使用します:

{
"password": "pass",
"action": "oneRequest",
"data": {
...
}
}

ここで:

  • password - A-Parserのパスワード
  • action - 呼び出すAPIメソッド
  • data - リクエストパラメータ(リクエストタイプごとに異なります。全リストと説明はこちら

レスポンスの一般的な形式は以下の通りです:

{
"success": 1,
"data": "..."
}

ここで:

  • success - APIリクエストの成否。1または0の値を取ります
  • data - 呼び出されたメソッドへのレスポンス。リクエストタイプに応じてスカラーまたはオブジェクトになります

PHPでのコード例

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'];

Perlでのコード例

Perl用クライアントの使用を推奨します。以下のクライアントを使用しないコードは、参考のために記載しています:

use LWP;
use JSON::XS;

my $aparser = 'http://127.0.0.1:9091/API';

my $request = encode_json {
'action' => 'oneRequest',
'data' => {
'parser' => 'SE::Google',
'preset' => 'Pages Count use Proxy',
'query' => 'test'
},
'password' => 'pass'
};

my $ua = LWP::UserAgent->new();

my $response = $ua->post(
$aparser,
'Content-Type' => 'text/plain; charset=UTF-8',
'Content-Length' => length $request,
'Content' => $request
);

if($response->is_success) {
my $json = decode_json $response->content();
print $json->{'data'}->{'resultString'};
}
else {
warn 'Response fail: ', $response->status_line();
};

インターフェースでのAPIリクエスト取得

タスクエディタには、完全なAPIリクエストを取得するためのShow API query (APIリクエストを取得)機能があります。これを使用すると、addTaskメソッドで使用するための完全なJSONを取得できます。

APIリクエストの取得

Redis API

Redis APIは、Redisサーバーを介してA-Parserを統合する代替手段であり、特定のシナリオにおいてより高い柔軟性とパフォーマンスを提供します。

Redis APIの詳細

⏩ API操作のビデオ概要