Chuyển đến nội dung chính

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 http://127.0.0.1:9091/API \
-H 'Content-Type: application/json' \
-d '{"password":"123","action":"ping"}'

Kết quả:

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

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-length
  • content-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-Parser
  • action - phương thức API được gọi
  • data - 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 0
  • data - 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

Lấy truy vấn API

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

Chi tiết về Redis API

⏩ Video tổng quan về cách làm việc với API