Passer au contenu principal

Méthodes API

ping

Vérification du fonctionnement du serveur et de l'API.

Exemple de requête

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

Exemple de réponse

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

oneRequest

Requête de collecte de données unique, n'importe quel scraper et présélection peuvent être utilisés. Le résultat sera une chaîne formée selon le format de résultat défini dans la présélection, ainsi qu'un journal complet du fonctionnement du scraper.

Exemple de requête

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

Description des paramètres possibles :

  • parser - quel scraper utiliser pour exécuter la requête
  • preset - quel preset utiliser
  • configPreset - quelle configuration de threads utiliser
  • query - la requête elle-même
  • rawResults - paramètre optionnel, s'il est défini, au lieu de la chaîne de caractères resultString, il retournera un tableau results avec tous les résultats supportés par le scraper indiqué
  • needData - paramètre optionnel indiquant s'il faut transmettre data et pages dans la réponse, utilisé pour économiser de la mémoire, désactivé par défaut
  • doLog - paramètre optionnel indiquant s'il faut retourner le log de fonctionnement avec les résultats, activé par défaut
  • options - tableau avec des options supplémentaires appliquées au scraper, par exemple - override - permet de redéfinir les valeurs dans la présélection

Exemple de réponse

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

Description des variables dans la réponse :

  • resultString - chaîne de résultat
  • logs - tableau avec les logs d'exécution de la requête

Redéfinition des paramètres du scraper

Dans options, vous pouvez redéfinir n'importe quel paramètre du scraper utilisé, ils seront appliqués par-dessus les valeurs indiquées dans la présélection de paramètres.

Exemple de requête :

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

Réponse :

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

Requête de collecte de données en masse, n'importe quel scraper et présélection peuvent être utilisés, et il est également possible de spécifier le nombre de threads pour effectuer la collecte de données. Le résultat sera une chaîne formée selon le format de résultat défini dans la présélection, ainsi qu'un journal complet du fonctionnement du scraper pour chaque thread.

Exemple de requête

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

Description des variables possibles dans data :

  • threads - nombre de threads pour la collecte de données
  • queries - tableau de requêtes. Les autres variables sont totalement analogues à oneRequest, à l'exception de query

Exemple de réponse

{
"success": 1,
"data": {
"logs": {
"0": {
"1": [
[
4,
1614935687,
"SE::Google::0",
"test1"
],
...
[
0,
1614935688,
"Thread complete work"
]
]
},
...log pour les autres 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
},
...résultats pour les autres requêtes...
]
}
}

addTask

Ajout d'une tâche à la file, tous les paramètres sont analogues à ceux définis dans l'interface de l'Éditeur de tâches

astuce

Pour obtenir rapidement la configuration complète d'une tâche, vous pouvez utiliser l' Éditeur de tâches, composer la tâche et obtenir le JSON pour la requête API

Exemple de requête

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

Exemple de réponse

L'id de la tâche créée est renvoyé dans la réponse.

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

Tâche avec requêtes à partir d'un fichier

Pour que les requêtes d'une tâche soient extraites d'un fichier, vous devez définir "queriesFrom": "file" et le(s) chemin(s) vers le(s) fichier(s) de requêtes "queriesFile": ["queries1.txt", "queries2.txt"]. Pour le reste, tout est identique à l'exemple ci-dessus.

Exemple de requête

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

Exemple de réponse

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

Lancement d'une tâche précédemment enregistrée

Il est possible de lancer une présélection préalablement créé via l'interface. Dans ce cas, il suffit d'indiquer les requêtes. Vous pouvez également redéfinir n'importe quel paramètre de la tâche, ils seront utilisés par-dessus les valeurs de la présélection.

Exemple de requête

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

Exemple de réponse

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

Drapeau removeOnRestart

Ce drapeau indique que les tâches seront supprimées lors du redémarrage du scraper.

Exemple de requête

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

Exemple de réponse

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

Drapeau removeOnComplete

Ce drapeau indique que les tâches seront supprimées après leur achèvement.

Exemple de requête

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

Exemple de réponse

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

info

Obtention d'informations générales sur l'état de A-Parser et obtention de la liste de tous les scrapers disponibles.

astuce

Il est possible d'obtenir le numéro de la version actuelle de A-Parser directement via le lien : https://a-parser.com/members/versions

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

Exemple de requête

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

Exemple de réponse

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

Obtention des paramètres du scraper et de la présélection indiqués.

astuce

Cette méthode permet d'obtenir la liste complète des paramètres à utiliser dans d'autres requêtes API.

Exemple de requête

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

Exemple de réponse

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

Requête de la liste des proxies actifs. Retourne la liste des proxies actifs de tous les proxycheckers.

Exemple de requête

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

Exemple de réponse

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

L' IP:port du proxy sera indiqué comme nom du tableau. Le premier élément du tableau est le type de proxy, il peut prendre 3 valeurs - http, socks, socks4. Si l'authentification par login\mot de passe est spécifiée, alors le deuxième et le troisième éléments seront le login et le mot de passe.

Il est également possible d'obtenir la liste des proxies uniquement à partir de certains proxycheckers. Pour cela, il faut transmettre en plus le tableau checkers.

Exemple :

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

getTaskState

Obtention de l'état d'une tâche par son id.

Exemple de requête

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

Exemple de réponse

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

Le statut de la tâche (status) et ses statistiques (state) sont renvoyés en réponse.

Il est également possible d'obtenir des informations sur plusieurs tâches à la fois, pour cela il faut transmettre un tableau d'id.

Exemple de requête

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

Dans ce cas, la réponse contiendra un tableau avec les données pour chaque tâche.

Exemple de réponse

{
"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
}
},
...données pour les autres tâches...
]
}

getTaskConf

Obtention de la configuration d'une tâche par son id.

Exemple de requête

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

Exemple de réponse

Les paramètres de la tâche sont renvoyés en réponse, y compris avec le nom du fichier résultant.

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

Obtention d'un lien pour télécharger le résultat par l'id de la tâche. Le fichier peut être téléchargé une seule fois via le lien obtenu, sans authentification (un jeton à usage unique est utilisé).

note

Fonctionne uniquement avec un nom de fichier statique et $datefile.format(). Pour transformer un nom de fichier de résultat dynamique en nom statique, vous pouvez utiliser le drapeau du moteur de gabarit isStaticTemplate()

Exemple de requête

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

Exemple de réponse

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

getTasksList

Obtention de la liste des tâches actives. Si vous transmettez le paramètre supplémentaire completed: 1, vous obtiendrez la liste des tâches terminées.

Exemple de requête

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

Exemple de réponse

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

getParserInfo

Affiche la liste de tous les résultats disponibles que le scraper indiqué peut retourner.

Exemple de requête

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

Exemple de réponse

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

Obtention du nombre de comptes Yandex actifs.

Exemple de requête

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

Exemple de réponse

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

deleteTaskResultsFile

Suppression du fichier de résultat par l'id de la tâche.

Exemple de requête

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

Exemple de réponse

{
"success": 1
}

changeTaskStatus

Modification du statut d'une tâche par son id. Il existe seulement 4 états vers lesquels une tâche peut être transférée :

  • starting - lancement de la tâche
  • pausing - mise en pause
  • stopping - arrêt de la tâche
  • deleting - suppression de la tâche

Exemple de requête

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

Exemple de réponse

{
"success": 1
}

changeProxyCheckerState

Modification de l'état du proxychecker (1 - activé / 0 - désactivé).

Exemple de requête

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

Exemple de réponse

{
"success": 1
}

moveTask

Déplacement d'une tâche dans la file par son id. Directions de déplacement possibles :

  • start - au début de la file
  • end - à la fin de la file
  • up - d'une position vers le haut
  • down - d'une position vers le bas

Exemple de requête

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

Exemple de réponse

{
"success": 1
}

update

Met à jour le fichier exécutable du scraper vers la dernière version disponible. Après l'envoi de la commande, A-Parser sera automatiquement redémarré. L'API retournera une réponse de succès après avoir téléchargé et mis à jour le fichier exécutable, cela peut prendre 1 à 3 minutes.

Exemple de requête

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

Exemple de réponse

{
"success": 1
}