Ga naar de hoofdinhoud

API-methoden

ping

Controle van de server- en API-werking.

Voorbeeld van een verzoek

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

Voorbeeld van een antwoord

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

oneRequest

Een enkel verzoek voor gegevensextractie, waarbij elke scraper en preset kan worden gebruikt. Het resultaat is een regel die is geformatteerd volgens het resultaatformaat dat in de preset is gedefinieerd, evenals een volledig logboek van de scraper-werking.

Voorbeeld van een verzoek

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

Beschrijving van mogelijke parameters:

  • parser - welke scraper moet worden gebruikt om het verzoek uit te voeren
  • preset - welke preset moet worden gebruikt
  • configPreset - welke thread-configuratie moet worden gebruikt
  • query - de zoekopdracht zelf
  • rawResults - optionele parameter; indien ingesteld, wordt in plaats van de resultaatregel resultString een array results geretourneerd met alle resultaten die de opgegeven scraper ondersteunt
  • needData - optionele parameter die aangeeft of data en pages in het antwoord moeten worden verzonden; wordt gebruikt om geheugen te besparen, standaard uitgeschakeld
  • doLog - optionele parameter die aangeeft of het werklogboek samen met de resultaten moet worden geretourneerd, standaard ingeschakeld
  • options - een array met extra opties die op de scraper worden toegepast, bijvoorbeeld - override - hiermee kunnen waarden in de preset worden overschreven

Voorbeeld van een antwoord

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

Beschrijving van variabelen in het antwoord:

  • resultString - de resultaatregel
  • logs - array met logboeken van de uitvoering van het verzoek

Overschrijven van scraper-parameters

In options kunt u alle parameters van de gebruikte scraper overschrijven; deze worden gebruikt bovenop de waarden die in de instellingen-preset zijn opgegeven.

Voorbeeld van een verzoek:

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

Antwoord:

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

Een bulkverzoek voor gegevensextractie, waarbij elke scraper en preset kan worden gebruikt, en waarbij ook het aantal threads voor de extractie kan worden opgegeven. Het resultaat is een geformatteerde regel volgens het resultaatformaat dat in de preset is gedefinieerd, evenals een volledig logboek van de scraper-werking per thread.

Voorbeeld van een verzoek

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

Beschrijving van mogelijke variabelen in data:

  • threads - aantal threads voor gegevensextractie
  • queries - array van zoekopdrachten. De overige variabelen zijn volledig identiek aan oneRequest, met uitzondering van query

Voorbeeld van een antwoord

{
"success": 1,
"data": {
"logs": {
"0": {
"1": [
[
4,
1614935687,
"SE::Google::0",
"test1"
],
...
[
0,
1614935688,
"Thread complete work"
]
]
},
...logboek voor de overige threads...
},
"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
},
...resultaten voor de overige zoekopdrachten...
]
}
}

addTask

Een taak toevoegen aan de wachtrij; alle parameters zijn identiek aan de parameters die in de interface van de Taakeditor worden ingesteld.

tip

Om snel de volledige configuratie van een taak te verkrijgen, kunt u de Taakeditor gebruiken, de taak samenstellen en de JSON voor het API-verzoek ophalen.

Voorbeeld van een verzoek

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

Voorbeeld van een antwoord

In het antwoord wordt de id van de gemaakte taak geretourneerd.

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

Taak met zoekopdrachten uit een bestand

Om ervoor te zorgen dat zoekopdrachten in een taak uit een bestand worden gehaald, moet u "queriesFrom": "file" instellen en het pad (of de paden) naar het bestand (of de bestanden) met zoekopdrachten opgeven via "queriesFile": ["queries1.txt", "queries2.txt"]. Voor het overige is alles hetzelfde als in het bovenstaande voorbeeld.

Voorbeeld van een verzoek

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

Voorbeeld van een antwoord

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

Een eerder opgeslagen taak starten

U kunt een preset starten die vooraf via de interface is gemaakt. In dit geval hoeft u alleen de zoekopdrachten op te geven. U kunt ook elke taakparameter overschrijven; deze worden gebruikt bovenop de waarden in de preset.

Voorbeeld van een verzoek

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

Voorbeeld van een antwoord

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

Vlag removeOnRestart

Deze vlag geeft aan dat taken worden verwijderd wanneer de scraper opnieuw wordt opgestart.

Voorbeeld van een verzoek

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

Voorbeeld van een antwoord

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

Vlag removeOnComplete

Deze vlag geeft aan dat taken na voltooiing worden verwijderd.

Voorbeeld van een verzoek

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

Voorbeeld van een antwoord

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

info

Algemene informatie ophalen over de status van A-Parser en een lijst van alle beschikbare scrapers opvragen.

tip

Het actuele versienummer van A-Parser kan direct via de link worden verkregen: https://a-parser.com/members/versions

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

Voorbeeld van een verzoek

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

Voorbeeld van een antwoord

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

De instellingen van de opgegeven scraper en preset ophalen.

tip

Met deze methode kunt u de volledige lijst met parameters verkrijgen voor gebruik in andere API-verzoeken.

Voorbeeld van een verzoek

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

Voorbeeld van een antwoord

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

Een lijst met actieve proxy's opvragen. Er wordt een lijst met actieve proxy's van alle proxycheckers geretourneerd.

Voorbeeld van een verzoek

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

Voorbeeld van een antwoord

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

Het IP:port van de proxy wordt gebruikt als de naam van de array. Het eerste element van de array is het type proxy, dat 3 waarden kan aannemen - http, socks, socks4. Als autorisatie via login/wachtwoord is opgegeven, zijn het tweede en derde element de login en het wachtwoord.

U kunt ook een lijst met proxy's van alleen specifieke proxycheckers ophalen. Hiervoor moet u extra de array checkers meesturen.

Voorbeeld:

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

getTaskState

De status van een taak ophalen op basis van de id.

Voorbeeld van een verzoek

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

Voorbeeld van een antwoord

{
"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 het antwoord wordt de status van de taak (status) en de statistieken ervan (state) geretourneerd.

U kunt ook informatie over meerdere taken tegelijk ophalen door een array met id's te verzenden.

Voorbeeld van een verzoek

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

In dit geval bevat het antwoord een array met gegevens voor elke taak.

Voorbeeld van een antwoord

{
"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
}
},
...gegevens voor de overige taken...
]
}

getTaskConf

De configuratie van een taak ophalen op basis van de id.

Voorbeeld van een verzoek

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

Voorbeeld van een antwoord

In het antwoord worden de taakinstellingen geretourneerd, inclusief de resulterende bestandsnaam.

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

Een link ophalen om het resultaat te downloaden op basis van de taak-id. Via de verkregen link kan het bestand slechts één keer worden gedownload, zonder autorisatie (er wordt een eenmalig token gebruikt).

opmerking

Werkt alleen met een statische bestandsnaam en $datefile.format(). Om een dynamische bestandsnaam van het resultaat om te zetten in een statische, kunt u de templating-vlag isStaticTemplate() gebruiken.

Voorbeeld van een verzoek

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

Voorbeeld van een antwoord

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

getTasksList

Een lijst met actieve taken opvragen. Als u de extra parameter completed: 1 meestuurt, krijgt u een lijst met voltooide taken.

Voorbeeld van een verzoek

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

Voorbeeld van een antwoord

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

getParserInfo

Toont een lijst van alle beschikbare resultaten die de opgegeven scraper kan retourneren.

Voorbeeld van een verzoek

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

Voorbeeld van een antwoord

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

Het aantal actieve Yandex-accounts ophalen.

Voorbeeld van een verzoek

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

Voorbeeld van een antwoord

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

deleteTaskResultsFile

Het resultaatbestand verwijderen op basis van de taak-id.

Voorbeeld van een verzoek

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

Voorbeeld van een antwoord

{
"success": 1
}

changeTaskStatus

De status van een taak wijzigen op basis van de id. Er zijn in totaal 4 statussen waarnaar een taak kan worden overgezet:

  • starting - taak starten
  • pausing - taak pauzeren
  • stopping - taak stoppen
  • deleting - taak verwijderen

Voorbeeld van een verzoek

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

Voorbeeld van een antwoord

{
"success": 1
}

changeProxyCheckerState

De status van de proxychecker wijzigen (1 - ingeschakeld / 0 - uitgeschakeld).

Voorbeeld van een verzoek

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

Voorbeeld van een antwoord

{
"success": 1
}

moveTask

Een taak in de wachtrij verplaatsen op basis van de id. Mogelijke verplaatsingsrichtingen:

  • start - naar het begin van de wachtrij
  • end - naar het einde van de wachtrij
  • up - één positie omhoog
  • down - één positie omlaag

Voorbeeld van een verzoek

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

Voorbeeld van een antwoord

{
"success": 1
}

update

Werkt het uitvoerbare bestand van de scraper bij naar de laatst beschikbare versie. Na het verzenden van de opdracht wordt A-Parser automatisch opnieuw opgestart. De API retourneert een succesbericht nadat het uitvoerbare bestand is gedownload en bijgewerkt; dit kan 1-3 minuten duren.

Voorbeeld van een verzoek

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

Voorbeeld van een antwoord

{
"success": 1
}