Tổng quan về API
A-Parser hỗ trợ quản lý thông qua API, cho phép tích hợp công cụ cào dữ liệu vào các hệ thống phức tạp (ví dụ SaaS), sử dụng các khả năng của A-Parser từ các chương trình và tập lệnh khác.
API được triển khai dựa trên giao thức HTTP và tuần tự hóa dữ liệu JSON, có thể được sử dụng từ bất kỳ ngôn ngữ lập trình nào
- curl
- NodeJS
- Perl
- Python
- PHP
curl http://127.0.0.1:9091/API \
-H 'Content-Type: application/json' \
-d '{"password":"123","action":"ping"}'
Kết quả:
{"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();
Ví dụ sử dụng
- Gọi và xử lý các truy vấn đơn lẻ hoặc hàng loạt tới bất kỳ công cụ cào dữ liệu nào, ví dụ:
- Lấy danh sách liên kết từ Google theo truy vấn
- Dịch văn bản qua Google Translate/Yandex Translate/DeepL
- Lấy các tham số theo tên miền, chẳng hạn như ngày đăng ký, xếp hạng Alexa và nhiều thông số khác
- Đưa các nhiệm vụ vào hàng đợi và nhận kết quả
- Quản lý hàng đợi nhiệm vụ và kiểm soát trạng thái nhiệm vụ
- Tự động hóa hoạt động của một cụm (farm) công cụ cào dữ liệu
Các khách hàng sẵn có
Đối với A-Parser, có sẵn các khách hàng giúp đơn giản hóa việc làm việc với API:
NodeJS
Perl
PHP
Python
Hình thành truy vấn
Tương tác với A-Parser diễn ra qua giao thức HTTP với tuần tự hóa JSON cho truy vấn và phản hồi. Để thực hiện truy vấn tới API, cần thực hiện một truy vấn POST tới địa chỉ:
http://IP-server:9091/API
Bắt buộc phải truyền các tiêu đề (headers):
content-lengthcontent-type: application/json
Cấu trúc được tuần tự hóa JSON được sử dụng làm thân truy vấn (request body):
{
"password": "pass",
"action": "oneRequest",
"data": {
...
}
}
Trong đó:
password- mật khẩu của A-Parseraction- phương thức API được gọidata- các tham số truy vấn, riêng biệt cho từng loại truy vấn, danh sách đầy đủ và mô tả tại đây
Phản hồi ở dạng tổng quát trông như sau:
{
"success": 1,
"data": "..."
}
Trong đó:
success- tính thành công của truy vấn API, có thể nhận giá trị 1 hoặc 0data- phản hồi cho phương thức đã gọi, có thể là một giá trị vô hướng hoặc một đối tượng, tùy thuộc vào loại truy vấn
Ví dụ mã nguồn bằng PHP
Chúng tôi khuyên bạn nên sử dụng khách hàng cho PHP, mã nguồn này không sử dụng khách hàng được cung cấp cho mục đích tham khảo:
$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'];
Ví dụ mã nguồn bằng Perl
Chúng tôi khuyên bạn nên sử dụng khách hàng cho Perl, mã nguồn này không sử dụng khách hàng được cung cấp cho mục đích tham khảo:
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();
};
Lấy truy vấn API trong giao diện
Để lấy truy vấn API đầy đủ trong Trình chỉnh sửa nhiệm vụ, có chức năng Show API query (Lấy truy vấn API). Với sự trợ giúp của nó, bạn có thể lấy JSON đầy đủ để sử dụng trong phương thức addTask

Redis API
Redis API là một cách thay thế để tích hợp A-Parser thông qua máy chủ Redis, mang lại sự linh hoạt và hiệu suất cao hơn trong một số kịch bản nhất định