Vai al contenuto principale

Metodi API

ping

Verifica del funzionamento del server e delle API.

Esempio di richiesta

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

Esempio di risposta

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

oneRequest

Singola richiesta di scraping, può essere utilizzato qualsiasi scraper e preset. Come risultato verrà generata una stringa in conformità con il formato del risultato impostato nel preset, oltre al log completo del funzionamento dello scraper.

Esempio di richiesta

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

Descrizione dei parametri possibili:

  • parser - quale scraper utilizzare per eseguire la richiesta
  • preset - quale preset utilizzare
  • configPreset - quale configurazione dei thread utilizzare
  • query - la query stessa
  • rawResults - parametro opzionale, se impostato, invece della stringa di risultato resultString restituirà un array results con tutti i risultati supportati dallo scraper specificato
  • needData - parametro opzionale che indica se trasmettere data e pages nella risposta, utilizzato per risparmiare memoria, disabilitato per impostazione predefinita
  • doLog - parametro opzionale, indica se restituire il log di funzionamento insieme ai risultati, abilitato per impostazione predefinita
  • options - array con opzioni aggiuntive applicate allo scraper, ad esempio - override - permette di sovrascrivere i valori nel preset

Esempio di risposta

{
"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"
]
]
}
}

Descrizione delle variabili nella risposta:

  • resultString - stringa del risultato
  • logs - array con i log di esecuzione della richiesta

Sovrascrittura dei parametri dello scraper

In options è possibile sovrascrivere qualsiasi parametro dello scraper utilizzato; questi verranno applicati sopra i valori specificati nel preset delle impostazioni.

Esempio di richiesta:

{
"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
}
]
}
}

Risposta:

{
"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

Richiesta massiva di scraping, può essere utilizzato qualsiasi scraper e preset, ed è inoltre possibile specificare in quanti thread eseguire lo scraping. Come risultato verrà generata una stringa in conformità con il formato del risultato impostato nel preset, oltre al log completo del funzionamento dello scraper per ogni thread.

Esempio di richiesta

{
"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"
]
}
}

Descrizione delle variabili possibili in data:

  • threads - numero di thread per lo scraping
  • queries - array di query. Le restanti variabili sono completamente analoghe a oneRequest, ad eccezione di query

Esempio di risposta

{
"success": 1,
"data": {
"logs": {
"0": {
"1": [
[
4,
1614935687,
"SE::Google::0",
"test1"
],
...
[
0,
1614935688,
"Thread complete work"
]
]
},
...log per gli altri thread...
},
"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
},
...risultati per le altre query...
]
}
}

addTask

Aggiunta di un'attività alla coda, tutti i parametri sono analoghi a quelli impostati nell'interfaccia dell'Editor delle attività

suggerimento

Per ottenere rapidamente la configurazione completa di un'attività, è possibile utilizzare l'Editor delle attività, comporre l'attività e ottenere il JSON per la richiesta API

Esempio di richiesta

{
"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": "Link;Anchor\n",
"resultsAppend": "",
"queryBuilders": [],
"resultsBuilders": [],
"configOverrides": [],
"runTaskOnComplete": null,
"useResultsFileAsQueriesFile": false,
"runTaskOnCompleteConfig": "default",
"toolsJS": "",
"prio": 5,
"removeOnComplete": false,
"callURLOnComplete": "",
"queries": [
"test",
"bla-bla"
]
}
}

Esempio di risposta

Nella risposta viene restituito l'id dell'attività creata.

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

Attività con query da file

Affinché le query nell'attività vengano prelevate da un file, è necessario impostare "queriesFrom": "file" e il percorso (o i percorsi) dei file delle query "queriesFile": ["queries1.txt", "queries2.txt"]. Per il resto, tutto è uguale all'esempio sopra.

Esempio di richiesta

{
"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"
]
}
}

Esempio di risposta

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

Avvio di un'attività precedentemente salvata

È possibile avviare un preset creato in precedenza tramite l'interfaccia. In questo caso è necessario indicare solo le query. È inoltre possibile sovrascrivere qualsiasi parametro dell'attività; questi verranno utilizzati sopra i valori nel preset.

Esempio di richiesta

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

Esempio di risposta

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

Flag removeOnRestart

Questo flag indica che le attività verranno eliminate al riavvio dello scraper.

Esempio di richiesta

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

Esempio di risposta

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

Flag removeOnComplete

Questo flag indica che le attività verranno eliminate dopo il completamento.

Esempio di richiesta

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

Esempio di risposta

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

info

Ottenimento di informazioni generali sullo stato di A-Parser e dell'elenco di tutti gli scraper disponibili.

suggerimento

È possibile ottenere il numero dell'attuale versione di A-Parser direttamente tramite il link: https://a-parser.com/members/versions

Esempio: {"lastBetaVersion":"1.2.1484","lastAlphaVersion":"1.2.1484","lastVersion":"1.2.1432"}

Esempio di richiesta

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

Esempio di risposta

{
"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

Ottenimento delle impostazioni dello scraper e del preset specificati.

suggerimento

Con questo metodo è possibile ottenere l'elenco completo dei parametri da utilizzare in altre richieste API.

Esempio di richiesta

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

Esempio di risposta

{
"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

Richiesta dell'elenco dei proxy attivi. Viene restituito l'elenco dei proxy attivi da tutti i proxychecker.

Esempio di richiesta

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

Esempio di risposta

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

IP:port del proxy verrà indicato come nome dell'array. Il primo elemento dell'array è il tipo di proxy, può assumere 3 valori - http, socks, socks4. Se è specificata l'autorizzazione tramite login\password, il secondo e il terzo elemento saranno login e password.

È inoltre possibile ottenere l'elenco dei proxy solo da determinati proxychecker. Per fare ciò, è necessario passare aggiuntivamente l'array checkers.

Esempio:

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

getTaskState

Ottenimento dello stato dell'attività tramite il suo id.

Esempio di richiesta

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

Esempio di risposta

{
"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
}
}
}

In risposta vengono restituiti lo stato dell'attività (status) e le sue statistiche (state).

È inoltre possibile ottenere informazioni su più attività contemporaneamente; per farlo è necessario passare un array di id.

Esempio di richiesta

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

In questo caso, la risposta conterrà un array con i dati per ogni attività.

Esempio di risposta

{
"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
}
},
...dati per le altre attività...
]
}

getTaskConf

Ottenimento della configurazione dell'attività tramite il suo id.

Esempio di richiesta

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

Esempio di risposta

In risposta vengono restituite le impostazioni dell'attività, incluso il nome del file risultante.

{
"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

Ottenimento del link per scaricare il risultato tramite l'id dell'attività. Tramite il link ottenuto è possibile scaricare il file solo una volta, senza autorizzazione (viene utilizzato un token monouso).

nota

Funziona solo con un nome file statico e $datefile.format(). Per trasformare un nome file di risultato dinamico in uno statico, è possibile utilizzare il flag del motore di template isStaticTemplate()

Esempio di richiesta

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

Esempio di risposta

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

getTasksList

Ottenimento dell'elenco delle attività attive. Se si passa il parametro aggiuntivo completed: 1, si otterrà l'elenco delle attività completate.

Esempio di richiesta

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

Esempio di risposta

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

getParserInfo

Visualizza l'elenco di tutti i risultati disponibili che lo scraper specificato può restituire.

Esempio di richiesta

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

Esempio di risposta

{
"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

Ottenimento del numero di account Yandex attivi.

Esempio di richiesta

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

Esempio di risposta

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

deleteTaskResultsFile

Eliminazione del file di risultato tramite l'id dell'attività.

Esempio di richiesta

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

Esempio di risposta

{
"success": 1
}

changeTaskStatus

Modifica dello stato dell'attività tramite il suo id. Esistono in totale 4 stati in cui è possibile portare un'attività:

  • starting - avvio dell'attività
  • pausing - messa in pausa
  • stopping - arresto dell'attività
  • deleting - eliminazione dell'attività

Esempio di richiesta

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

Esempio di risposta

{
"success": 1
}

changeProxyCheckerState

Modifica dello stato del proxychecker (1 - abilitato / 0 - disabilitato).

Esempio di richiesta

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

Esempio di risposta

{
"success": 1
}

moveTask

Spostamento dell'attività nella coda tramite il suo id. Possibili direzioni di spostamento:

  • start - all'inizio della coda
  • end - alla fine della coda
  • up - una posizione in su
  • down - una posizione in giù

Esempio di richiesta

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

Esempio di risposta

{
"success": 1
}

update

Aggiorna il file eseguibile dello scraper all'ultima versione disponibile. Dopo l'invio del comando, A-Parser verrà riavviato automaticamente. L'API restituirà una risposta di successo dopo aver scaricato e aggiornato il file eseguibile; l'operazione può richiedere 1-3 minuti.

Esempio di richiesta

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

Esempio di risposta

{
"success": 1
}