API 概览
A-Parser 支持通过 API 进行管理,这使得您可以将爬虫工具集成到复杂的系统(例如 SaaS)中,从其他程序和脚本中利用 A-Parser 的功能。
API 基于 HTTP 协议和 JSON 数据序列化实现,可以从任何编程语言中使用。
- curl
- NodeJS
- Perl
- Python
- PHP
curl http://127.0.0.1:9091/API \
-H 'Content-Type: application/json' \
-d '{"password":"123","action":"ping"}'
结果:
{"success":1,"data":"pong"}
const AParserClient = require('a-parser-client');
const AParser = new AParserClient('http://127.0.0.1:9091/API', '123');
AParser.ping()
.then(reply => console.log(reply.data))
.catch(err => console.log(err));
use AParser;
use Data::Dumper;
my $parser = AParser->new('http://127.0.0.1:9091/API', '123');
warn "Ping result:\n", Dumper $parser->ping();
from a_parser import AParser
aparser = AParser('http://127.0.0.1:9091/API', '123')
print(aparser.ping())
require_once 'aparser-api-php-client.php';
$aparser = new Aparser('http://127.0.0.1:9091/API', '123');
echo $aparser->ping();
应用场景
- 对任何爬虫工具发起并处理单个或批量查询请求,例如:
- 根据查询从 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-lengthcontent-type: application/json
JSON 序列化结构用作请求体:
{
"password": "pass",
"action": "oneRequest",
"data": {
...
}
}
其中:
password- A-Parser 的密码action- 调用的 API 方法data- 请求参数,每种请求类型各不相同,完整列表和说明请参阅此处
响应的通用格式如下:
{
"success": 1,
"data": "..."
}
其中:
success- API 请求的成功状态,取值为 1 或 0data- 所调用方法的响应内容,可以是标量或对象,取决于请求类型
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。

Redis API
Redis API 是通过 Redis 服务器集成 A-Parser 的另一种方式,在某些场景下能提供更大的灵活性和性能。