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ğipreset- hangi şablonun kullanılacağıconfigPreset- hangi iş parçacığı yapılandırmasının kullanılacağıquery- sorgunun kendisirawResults- 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ürneedData- 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ırdoLog- ç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ıroptions- 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 ...",
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,queryhariç, 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 ...",
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.
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.
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.
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.
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
}