Ana içeriğe atla

API Genel Bakış

A-Parser, API üzerinden yönetimi destekler; bu da A-Parser yeteneklerini diğer program ve betiklerden kullanarak veri kazıyıcıyı karmaşık sistemlerin (örneğin SaaS) bir parçası haline getirmenize olanak tanır.

API, HTTP protokolü ve JSON veri serileştirmesi temelinde uygulanmıştır ve herhangi bir programlama dilinden kullanılabilir.

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

Sonuç:

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

Kullanım örnekleri

  • Herhangi bir veri kazıyıcıya yönelik tekli veya toplu sorguların çağrılması ve işlenmesi, örneğin:
    • Sorgu üzerine Google'dan bağlantı listesi alma
    • Google Translate/Yandex Çeviri/DeepL aracılığıyla metin çevirisi
    • Kayıt tarihi, Alexa sıralaması ve diğer birçok alan adı parametresini alma
  • Görevlerin kuyruğa eklenmesi ve sonuçların alınması
  • Görev kuyruğunun yönetimi ve görev durumlarının kontrolü
  • Veri kazıyıcı çiftliğinin (farm) otomasyonu

Hazır istemciler

A-Parser için API ile çalışmayı kolaylaştıran hazır istemciler mevcuttur:

NodeJS

Perl

PHP

Python

Sorgu oluşturma

A-Parser ile etkileşim, JSON sorgu ve yanıt serileştirmesi ile HTTP protokolü üzerinden gerçekleşir. API'ye bir sorgu gerçekleştirmek için şu adrese bir POST sorgusu yapılması gerekir:

http://IP-sunucusu:9091/API

Aşağıdaki başlıkların (headers) iletilmesi zorunludur:

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

Sorgu gövdesi olarak JSON serileştirilmiş bir yapı kullanılır:

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

Burada:

  • password - A-Parser parolası
  • action - çağrılan API yöntemi
  • data - her sorgu türü için farklılık gösteren sorgu parametreleri; tam liste ve açıklama burada

Genel yanıt şu şekildedir:

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

Burada:

  • success - API sorgusunun başarı durumu, 1 veya 0 değerini alabilir
  • data - çağrılan yönteme verilen yanıt; sorgu türüne bağlı olarak bir skaler veya nesne olabilir

PHP kod örneği

PHP istemcisini kullanmanızı öneririz; istemci kullanılmadan yazılan bu kod bilgilendirme amaçlıdır:

$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 kod örneği

Perl istemcisini kullanmanızı öneririz; istemci kullanılmadan yazılan bu kod bilgilendirme amaçlıdır:

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();
};

Arayüzde API sorgusu alma

Görev Düzenleyici içerisinde, API'ye yönelik tam sorguyu almak için Show API query (API sorgusunu al) işlevi bulunur. Bu işlev yardımıyla, addTask yönteminde kullanmak üzere tam JSON yapısını elde edebilirsiniz.

API sorgusunu alma

Redis API

Redis API, A-Parser'ı bir Redis sunucusu üzerinden entegre etmenin alternatif bir yoludur ve bazı senaryolarda daha fazla esneklik ve performans sağlar.

Redis API hakkında daha fazlası

⏩ API çalışmasına video genel bakış