Ana içeriğe atla

API Metotları

ping

Sunucu ve API çalışmasının kontrolü.

Örnek istek

{
"password": "pass",
"action": "ping"
}

Örnek yanıt

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

oneRequest

Tekli veri çekme isteği; herhangi bir veri kazıyıcı ve şablon kullanılabilir. Sonuç olarak, şablonda belirtilen sonuç formatına uygun bir satır ve veri kazıyıcının tam çalışma günlüğü oluşturulacaktır.

Örnek istek

{
"password": "pass",
"action": "oneRequest",
"data": {
"query": "test",
"parser": "SE::Google",
"configPreset": "default",
"preset": "Pages Count use Proxy"
}
}

Olası parametrelerin açıklaması:

  • parser - isteğin hangi veri kazıyıcı ile yürütüleceği
  • preset - hangi şablonun kullanılacağı
  • configPreset - hangi iş parçacığı yapılandırmasının kullanılacağı
  • query - sorgunun kendisi
  • rawResults - isteğe bağlı parametre; ayarlanırsa, sonuç satırı resultString yerine, belirtilen veri kazıyıcının desteklediği tüm sonuçları içeren bir results dizisi döndürür
  • needData - yanıtta data ve pages bilgilerinin iletilip iletilmeyeceğini belirten isteğe bağlı parametre; bellek tasarrufu için kullanılır, varsayılan olarak kapalıdır
  • doLog - çalışma günlüğünün sonuçlarla birlikte döndürülüp döndürülmeyeceğini belirten isteğe bağlı parametre; varsayılan olarak açıktır
  • options - veri kazıyıcıya uygulanan ek seçenekler dizisi; örneğin - override - şablondaki değerlerin üzerine yazılmasını sağlar

Örnek yanıt

{
"success": 1,
"data": {
"resultString": "test: 6070000000\n",
"logs": [
[
0,
1614933603,
"Parser SE::Google::0 parse query test"
],
[
0,
1614933603,
"Parse page 1"
],
...
[
0,
1614933604,
"Thread complete work"
]
]
}
}

Yanıttaki değişkenlerin açıklaması:

  • resultString - sonuç satırı
  • logs - isteğin yürütülmesine ait günlükleri içeren dizi

Veri kazıyıcı parametrelerinin üzerine yazılması

options kısmında, kullanılan veri kazıyıcının herhangi bir parametresi geçersiz kılınabilir; bu değerler, ayarlar şablonunda belirtilen değerlerin üzerinde kullanılır.

Örnek istek:

{
"password": "pass",
"action": "oneRequest",
"data": {
"parser": "SE::Google",
"preset": "default",
"query": "test",
"rawResults": 1,
"doLog": 0,
"options": [
{
"value": 1,
"type": "override",
"id": "pagecount"
},
{
"value": 10,
"type": "override",
"id": "linksperpage"
},
{
"type": "override",
"id": "useproxy",
"value": false
}
]
}
}

Yanıt:

{
"success": 1,
"data": {
"logs": [],
"results": [
{
"ads": [],
"success": 1,
"info": {
"success": 1,
"retries": 0,
"stats": {
"success": 1,
"retries": 0,
"proxiesUsed": 0,
"requests": 0,
"queries": 1
}
},
"query": {
"first": "test",
"threadId": "0",
"lvl": 0,
"query": "test",
"queryUid": "0",
"orig": "test",
"prefered_proxy": null
},
"totalcount": "6130000000",
"serp": [
"https://www.test.de/",
"Stiftung Warentest",
"Sichern Sie sich mit der <em>test</em>.de-Flatrate freien Zugriff auf alle <em>Tests</em> und Produktfinder. Mehr erfahren: <em>test</em>.de-Flatrates. <em>Test</em> CO2&nbsp;...",
0,
...
],
"related": [
"test <b>speed</b>",
...
],
"detected_geo": "Germany",
"rich": [
"Featured snippet"
],
"misspell": 0,
"resultsCount": 11
}
]
}
}

bulkRequest

Toplu veri çekme isteği; herhangi bir veri kazıyıcı ve şablon kullanılabilir, ayrıca veri çekme işleminin kaç iş parçacığında yapılacağı belirtilebilir. Sonuç olarak, şablonda belirtilen sonuç formatına uygun bir satır ve her bir iş parçacığı için veri kazıyıcının tam çalışma günlüğü oluşturulacaktır.

Örnek istek

{
"password": "pass",
"action": "bulkRequest",
"data": {
"parser": "SE::Google",
"preset": "Pages Count no Proxy",
"configPreset": "default",
"threads": 3,
"rawResults": 1,
"queries": [
"test1",
"test2",
"test3",
"test4",
"test5"
]
}
}

data içindeki olası değişkenlerin açıklaması:

  • threads - veri çekme için iş parçacığı sayısı
  • queries - sorgu dizisi. Diğer değişkenler, query hariç, oneRequest ile tamamen aynıdır

Örnek yanıt

{
"success": 1,
"data": {
"logs": {
"0": {
"1": [
[
4,
1614935687,
"SE::Google::0",
"test1"
],
...
[
0,
1614935688,
"Thread complete work"
]
]
},
...diğer iş parçacıkları için günlük...
},
"results": [
{
"ads": [],
"success": 1,
"info": {
"success": 1,
"retries": 0,
"stats": {
"success": 1,
"retries": 0,
"proxiesUsed": 0,
"requests": 0,
"queries": 1
}
},
"query": {
"first": "test1",
"threadId": "0",
"lvl": 0,
"query": "test1",
"queryUid": "0",
"orig": "test1",
"prefered_proxy": null
},
"totalcount": "35800000",
"serp": [
"https://www.test1solutions.com/",
"FoamFlex200 | Oil Spill Absorbent | Oil Disaster solution",
"<em>TEST1</em> IS SOLUTION. In addition to the different models&nbsp;...",
0,
...
],
"related": [
"<b>test2</b>",
...
],
"detected_geo": "Germany",
"rich": [
"Featured snippet",
"People also ask"
],
"misspell": 0,
"resultsCount": 12
},
...diğer sorgular için sonuçlar...
]
}
}

addTask

Kuyruğa görev ekleme; tüm parametreler Görev Düzenleyici arayüzünde ayarlananlarla aynıdır.

ipucu

Tam bir görev yapılandırmasını hızlıca almak için Görev Düzenleyici'yi kullanabilir, bir görev oluşturabilir ve API isteği için JSON alabilirsiniz.

Örnek istek

{
"password": "pass",
"action": "addTask",
"data": {
"preset": "default",
"configPreset": "100 Threads",
"parsers": [
[
"SE::Bing",
"default",
{
"type": "override",
"id": "pagecount",
"value": 1
},
{
"type": "options",
"id": "parseAll",
"value": true
}
]
],
"resultsFormat": "$p1.serp.format('$link;$anchor\\n')",
"resultsSaveTo": "file",
"resultsFileName": "$datefile.format().csv",
"additionalFormats": [],
"resultsUnique": "string",
"queriesFrom": "text",
"queryFormat": [
"$query"
],
"uniqueQueries": true,
"saveFailedQueries": false,
"iteratorOptions": {
"onAllLevels": false,
"queryBuildersAfterIterator": false,
"queryBuildersOnAllLevels": false
},
"resultsOptions": {
"overwrite": false,
"writeBOM": true
},
"doLog": "db",
"limitLogsCount": "0",
"keepUnique": "No",
"moreOptions": true,
"resultsPrepend": "Bağlantı;Çapa\n",
"resultsAppend": "",
"queryBuilders": [],
"resultsBuilders": [],
"configOverrides": [],
"runTaskOnComplete": null,
"useResultsFileAsQueriesFile": false,
"runTaskOnCompleteConfig": "default",
"toolsJS": "",
"prio": 5,
"removeOnComplete": false,
"callURLOnComplete": "",
"queries": [
"test",
"bla-bla"
]
}
}

Örnek yanıt

Yanıtta oluşturulan görevin id'si gelir.

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

Dosyadan sorgu alan görev

Görevin sorguları bir dosyadan alması için "queriesFrom": "file" ve sorgu dosyalarının yollarını "queriesFile": ["queries1.txt", "queries2.txt"] olarak ayarlamanız gerekir. Geri kalan her şey yukarıdaki örnekle aynıdır.

Örnek istek

{
"password": "pass",
"action": "addTask",
"data": {
"preset": "default",
"configPreset": "100 Threads",
"parsers": [
[
"SE::Google",
"default"
]
],
"resultsFormat": "$p1.preset",
"resultsSaveTo": "file",
"resultsFileName": "$datefile.format().csv",
"additionalFormats": [],
"resultsUnique": "no",
"queriesFrom": "file",
"queryFormat": [
"$query"
],
"uniqueQueries": false,
"saveFailedQueries": false,
"iteratorOptions": {
"onAllLevels": false,
"queryBuildersAfterIterator": false,
"queryBuildersOnAllLevels": false
},
"resultsOptions": {
"overwrite": false,
"writeBOM": false
},
"doLog": "no",
"limitLogsCount": "0",
"keepUnique": "No",
"moreOptions": false,
"resultsPrepend": "",
"resultsAppend": "",
"queryBuilders": [],
"resultsBuilders": [],
"configOverrides": [],
"runTaskOnComplete": null,
"useResultsFileAsQueriesFile": false,
"runTaskOnCompleteConfig": "default",
"toolsJS": "",
"prio": 5,
"removeOnComplete": false,
"callURLOnComplete": "",
"queriesFile": [
"queries/Text Document.txt"
]
}
}

Örnek yanıt

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

Önceden kaydedilmiş bir görevi başlatma

Arayüz üzerinden önceden oluşturulmuş bir şablonu başlatabilirsiniz. Bu durumda sadece sorguları belirtmeniz yeterlidir. Ayrıca görevin herhangi bir parametresini geçersiz kılabilirsiniz; bunlar şablondaki değerlerin üzerinde kullanılacaktır.

Örnek istek

{
"password": "pass",
"action": "addTask",
"data": {
"queriesFrom": "text",
"queries": [
"google.com",
"yandex.ru"
],
"configPreset": "default",
"preset": "Analyze Domains"
}
}

Örnek yanıt

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

removeOnRestart bayrağı

Bu bayrak, veri kazıyıcı yeniden başlatıldığında görevlerin silineceğini belirtir.

Örnek istek

{
"password": "pass",
"action": "addTask",
"data": {
"queriesFrom": "text",
"queries": [
"google.com",
"yandex.ru"
],
"configPreset": "default",
"preset": "Analyze Domains",
"removeOnRestart": 1
}
}

Örnek yanıt

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

removeOnComplete bayrağı

Bu bayrak, görevlerin tamamlandıktan sonra silineceğini belirtir.

Örnek istek

{
"password": "pass",
"action": "addTask",
"data": {
"queriesFrom": "text",
"queries": [
"google.com",
"yandex.ru"
],
"configPreset": "default",
"preset": "Analyze Domains",
"removeOnComplete": 1
}
}

Örnek yanıt

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

info

A-Parser'ın durumu hakkında genel bilgi alma ve mevcut tüm veri kazıyıcıların listesini alma.

ipucu

A-Parser'ın güncel sürüm numarasını doğrudan şu bağlantıdan alabilirsiniz: https://a-parser.com/members/versions

Örnek: {"lastBetaVersion":"1.2.1484","lastAlphaVersion":"1.2.1484","lastVersion":"1.2.1432"}

Örnek istek

{
"password": "pass",
"action": "info"
}

Örnek yanıt

{
"success": 1,
"data": {
"tasksInQueue": 0,
"pid": "13968",
"activeProxyCheckerThreads": 0,
"workingTasks": 0,
"activeThreads": 0,
"version": "1.2.1151",
"availableParsers": [
"API::Server::Redis",
"Check::BackLink",
"Check::RosKomNadzor",
"DeepL::Translator",
"GooglePlay::Apps",
"HTML::EmailExtractor",
...
"Util::AntiGate",
"Util::ReCaptcha2",
"Util::YandexRecognize"
]
}
}

getParserPreset

Belirtilen veri kazıyıcı ve şablonun ayarlarını alma.

ipucu

Bu yöntemle, diğer API isteklerinde kullanmak üzere parametrelerin tam listesini alabilirsiniz.

Örnek istek

{
"password": "pass",
"action": "getParserPreset",
"data": {
"parser": "SE::Google",
"preset": "default"
}
}

Örnek yanıt

{
"success": 1,
"data": {
"queryformat": "$query",
"parsenotfound": 1,
"reCaptchaRetries": 3,
"pagecount": 5,
"gl": "",
"proxyChecker": "*",
"hl": "en",
"domain": "www.google.com",
"timeout": 60,
"Util_ReCaptcha2_preset": "default",
"useproxy": 1,
"nfpr": 0,
"extraquery": "",
"serptime": "all",
"location": "",
"usesessions": 1,
"filter": 1,
"linksperpage": 100,
"dontTakeSession": 0,
"addHeaders": "",
"serp": "",
"proxyretries": 10,
"device": "desktop",
"requestdelay": 0,
"debug_nonexists_domains": 0,
"proxybannedcleanup": 600,
"formatresult": "$serp.format('$link\\n')",
"reCaptchaPassProxy": 0,
"lr": ""
}
}

getProxies

Aktif proxylerin listesini isteme. Tüm proxy denetleyicilerinden gelen aktif proxylerin listesi döndürülür.

Örnek istek

{
"password": "pass",
"action": "getProxies"
}

Örnek yanıt

{
"success": 1,
"data": {
"127.0.0.1:23486": [
"socks"
],
"127.0.0.1:23140": [
"socks"
],
"127.0.0.1:21971": [
"http"
]
}
}

IP:port proxy, dizi adı olarak belirtilecektir. Dizinin ilk öğesi proxy türüdür ve 3 değer alabilir: http, socks, socks4. Kullanıcı adı/şifre ile yetkilendirme belirtilmişse, ikinci ve üçüncü öğeler kullanıcı adı ve şifre olacaktır.

Ayrıca sadece belirli proxy denetleyicilerinden proxy listesi alabilirsiniz. Bunun için ek olarak checkers dizisini iletmeniz gerekir.

Örnek:

{
"password": "pass",
"action": "getProxies",
"data": {
"checkers": [
"Elite proxies",
"free proxies"
]
}
}

getTaskState

Görevin durumunu id'sine göre alma.

Örnek istek

{
"password": "pass",
"action": "getTaskState",
"data": {
"taskUid": "181"
}
}

Örnek yanıt

{
"success": 1,
"data": {
"status": "completed",
"stats": "<b>Overall stats</b><br>Runtime: 0:00:19<br>HTTP requests: 464<br><br><b>1. HTML::LinkExtractor</b><br>Queries done: 254<br>Successful queries: 252<br>Proxies used: 0 (per query)<br>Retries used: 1.07 (per query)<br>HTTP requests: 1.82 (per query)",
"state": {
"totalFail": 2,
"totalWaitProxyThreads": 0,
"minimized": 0,
"queriesDoneCount": 254,
"avgSpeed": 802,
"activeThreads": 0,
"startTime": 1507281122,
"changeTime": 1507281141,
"queriesCount": 1,
"logExists": 0,
"runTime": 19,
"uniqueResultsCount": 656,
"requests": "464",
"addTime": 1507281120,
"additionalCount": 253,
"queriesDoneCountAtStart": 0,
"lastQuery": "https://www.nytimes.com/ref/membercenter/help/infoservdirectory.html",
"curSpeed": 846,
"started": 1,
"resultsCount": 31079
}
}
}

Yanıt olarak görevin durumu (status) ve istatistikleri (state) verilir.

Ayrıca aynı anda birden fazla görev hakkında bilgi alabilirsiniz; bunun için bir id dizisi iletmeniz gerekir.

Örnek istek

{
"password": "pass",
"action": "getTaskState",
"data": {
"taskUid": [
"22",
"23",
"31"
]
}
}

Bu durumda yanıtta her bir görev için verileri içeren bir dizi olacaktır.

Örnek yanıt

{
"success": 1,
"data": [
{
"status": "completed",
"stats": "<b>Overall stats</b><br>Runtime: 0:00:01<br>HTTP requests: 0<br><br><b>1. SE::Bing</b><br>Queries done: 0<br>Successful queries: 0<br>Proxies used: 0 (per query)<br>Retries used: 0 (per query)<br>HTTP requests: 0 (per query)",
"state": {
"totalFail": 0,
"totalWaitProxyThreads": 0,
"minimized": 0,
"queriesDoneCount": 0,
"avgSpeed": 0,
"activeThreads": 0,
"startTime": 1507023540,
"changeTime": 1507023541,
"queriesCount": 1,
"logExists": 1,
"runTime": 1,
"uniqueResultsCount": 0,
"requests": 0,
"addTime": 1507023443,
"additionalCount": 0,
"queriesDoneCountAtStart": 0,
"lastQuery": "none",
"curSpeed": 0,
"started": 1,
"resultsCount": 0
}
},
...diğer görevler için veriler...
]
}

getTaskConf

Görevin yapılandırmasını id'sine göre alma.

Örnek istek

{
"password": "pass",
"action": "getTaskConf",
"data": {
"taskUid": "181"
}
}

Örnek yanıt

Yanıt olarak, sonuç dosya adı da dahil olmak üzere görev ayarları verilir.

{
"success": 1,
"data": {
"parsers": [
[
"SE::Bing",
"default",
{
"value": 1,
"type": "override",
"id": "pagecount"
}
]
],
"resultsFileName": "Mar-05_13-12-23.txt",
"runTaskOnComplete": null,
"limitLogsCount": "0",
"resultsPrepend": "",
"origResultsFileName": "$datefile.format().txt",
"queriesFrom": "text",
"runTaskOnCompleteConfig": "default",
"doLog": "db",
"useResultsFileAsQueriesFile": 0,
"additionalFormats": [],
"resultsSaveTo": "file",
"callURLOnComplete": "",
"resultsFormat": "$p1.related.format('$key\\n')",
"queryBuilders": [],
"preset": "default",
"resultsAppend": "",
"uniqueQueries": 0,
"keepUnique": 0,
"prio": "5",
"saveFailedQueries": 0,
"configPreset": "100 Threads",
"queries": [
"test"
],
"toolsJS": "",
"moreOptions": 0,
"resultsBuilders": [],
"resultsUnique": "string",
"iteratorOptions": {
"onAllLevels": 0,
"queryBuildersAfterIterator": 0,
"queryBuildersOnAllLevels": 0
},
"removeOnComplete": 0,
"queryFormat": [
"$query"
],
"configOverrides": [],
"resultsOptions": {
"overwrite": 0,
"writeBOM": 0
}
}
}

getTaskResultsFile

Görev id'sine göre sonuç indirme bağlantısını alma. Alınan bağlantı üzerinden dosya, yetkilendirme gerektirmeden (tek kullanımlık bir belirteç kullanılır) sadece bir kez indirilebilir.

not

Sadece statik dosya adı ve $datefile.format() ile çalışır. Dinamik bir sonuç dosya adını statik hale getirmek için isStaticTemplate() şablon oluşturucu bayrağını kullanabilirsiniz.

Örnek istek

{
"password": "pass",
"action": "getTaskResultsFile",
"data": {
"taskUid": "181"
}
}

Örnek yanıt

{
"success": 1,
"data": "http://127.0.0.1:9091/downloadResults?fileName=Mar-05_13-12-23.txt&token=wbvwlkes"
}

getTasksList

Aktif görevlerin listesini alma. Ek olarak completed: 1 parametresi iletilirse, tamamlanmış görevlerin listesi alınır.

Örnek istek

{
"password": "pass",
"action": "getTasksList",
"data": {
"completed": "1"
}
}

Örnek yanıt

{
"success": 1,
"data": [
"2291",
"2324",
"2331",
"2384",
"2398",
"2434",
"2445",
"3482",
...
]
}

getParserInfo

Belirtilen veri kazıyıcının döndürebileceği tüm mevcut sonuçların listesini görüntüler.

Örnek istek

{
"password" : "pass",
"action" : "getParserInfo",
"data" : {
"parser" : "SE::Google"
}
}

Örnek yanıt

{
"success": 1,
"data": {
"results": {
"arrays": {
"ads": [
"Ads list",
[
[
"link",
"Link"
],
...
]
],
"related": [
"Related keywords",
[
[
"key",
"Key"
]
]
],
"rich": [
"Rich snippets list",
[
[
"name",
"Name"
]
]
],
"serp": [
"Main serp list",
[
[
"link",
"Link"
],
...
]
],
"pages": [
"Raw data array",
[
[
"data",
"Raw data"
]
]
]
},
"flat": [
[
"query",
"Formatted query"
],
...
]
}
}
}

getAccountsCount

Aktif Yandex hesaplarının sayısını alma.

Örnek istek

{
"password": "pass",
"action": "getAccountsCount"
}

Örnek yanıt

{
"success": 1,
"data": {
"SE::Yandex": 18
}
}

deleteTaskResultsFile

Görev id'sine göre sonuç dosyasını silme.

Örnek istek

{
"password": "pass",
"action": "deleteTaskResultsFile",
"data": {
"taskUid": "181"
}
}

Örnek yanıt

{
"success": 1
}

changeTaskStatus

Görevin durumunu id'sine göre değiştirme. Bir görevin geçirilebileceği toplam 4 durum vardır:

  • starting - görevi başlatma
  • pausing - duraklatma
  • stopping - görevi durdurma
  • deleting - görevi silme

Örnek istek

{
"password": "pass",
"action": "changeTaskStatus",
"data": {
"taskUid": "181",
"toStatus": "deleting"
}
}

Örnek yanıt

{
"success": 1
}

changeProxyCheckerState

Proxy denetleyicisinin durumunu değiştirme (1 - açık / 0 - kapalı).

Örnek istek

{
"password": "pass",
"action": "changeProxyCheckerState",
"data": {
"checker": "proxychecker name",
"state": 1
}
}

Örnek yanıt

{
"success": 1
}

moveTask

Görevi id'sine göre kuyrukta taşıma. Olası taşıma yönleri:

  • start - kuyruğun başına
  • end - kuyruğun sonuna
  • up - bir pozisyon yukarı
  • down - bir pozisyon aşağı

Örnek istek

{
"password": "pass",
"action": "moveTask",
"data": {
"taskUid": "181",
"direction": "start"
}
}

Örnek yanıt

{
"success": 1
}

update

Veri kazıyıcının yürütülebilir dosyasını mevcut en son sürüme günceller. Komut gönderildikten sonra A-Parser otomatik olarak yeniden başlatılacaktır. API, yürütülebilir dosyayı indirip güncelledikten sonra başarı yanıtı döndürecektir; bu işlem 1-3 dakika sürebilir.

Örnek istek

{
"password": "pass",
"action": "update"
}

Örnek yanıt

{
"success": 1
}