Ir al contenido principal

Métodos de la API

ping

Comprobación del funcionamiento del servidor y de la API.

Ejemplo de solicitud

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

Ejemplo de respuesta

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

oneRequest

Solicitud única de extracción de datos, se puede utilizar cualquier extractor y ajuste preestablecido. Como resultado, se generará una cadena de acuerdo con el formato de resultado especificado en el ajuste preestablecido, así como el registro completo del funcionamiento del extractor.

Ejemplo de solicitud

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

Descripción de los parámetros posibles:

  • parser: qué extractor utilizar para realizar la solicitud
  • preset: qué ajuste preestablecido utilizar
  • configPreset: qué configuración de hilos utilizar
  • query: la consulta en sí
  • rawResults: parámetro opcional; si se establece, en lugar de la cadena de resultado resultString, devolverá un array results con todos los resultados que admite el extractor especificado
  • needData: parámetro opcional que indica si se deben pasar data y pages en la respuesta; se utiliza para ahorrar memoria, desactivado por defecto
  • doLog: parámetro opcional que indica si se debe devolver el registro de funcionamiento junto con los resultados, activado por defecto
  • options: array con opciones adicionales aplicadas al extractor, por ejemplo, override permite sobrescribir valores en el ajuste preestablecido

Ejemplo de respuesta

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

Descripción de las variables en la respuesta:

  • resultString: cadena de resultado
  • logs: array con los registros de ejecución de la solicitud

Sobrescritura de parámetros del extractor

En options se pueden sobrescribir cualquier parámetro del extractor utilizado; estos se aplicarán sobre los valores especificados en el ajuste preestablecido de configuración.

Ejemplo de solicitud:

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

Respuesta:

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

Solicitud masiva de extracción de datos, se puede utilizar cualquier extractor y ajuste preestablecido, y también se puede especificar en cuántos hilos realizar la extracción de datos. Como resultado, se generará una cadena de acuerdo con el formato de resultado especificado en el ajuste preestablecido, así como el registro completo del funcionamiento del extractor por cada hilo.

Ejemplo de solicitud

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

Descripción de las posibles variables en data:

  • threads: cantidad de hilos para la extracción de datos
  • queries: array de consultas. El resto de las variables son completamente análogas a oneRequest, a excepción de query

Ejemplo de respuesta

{
"success": 1,
"data": {
"logs": {
"0": {
"1": [
[
4,
1614935687,
"SE::Google::0",
"test1"
],
...
[
0,
1614935688,
"Thread complete work"
]
]
},
...registro de los demás hilos...
},
"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
},
...resultados de las demás consultas...
]
}
}

addTask

Adición de una tarea a la cola; todos los parámetros son análogos a los que se establecen en la interfaz del Editor de tareas.

sugerencia

Para obtener rápidamente la configuración completa de una tarea, puede utilizar el Editor de tareas, configurar la tarea y obtener el JSON para la solicitud de API.

Ejemplo de solicitud

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

Ejemplo de respuesta

En la respuesta se recibe el id de la tarea creada.

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

Tarea con consultas desde un archivo

Para que las consultas de la tarea se tomen de un archivo, se debe establecer "queriesFrom": "file" y la(s) ruta(s) al archivo(s) de consultas "queriesFile": ["queries1.txt", "queries2.txt"]. En lo demás, todo es igual que en el ejemplo anterior.

Ejemplo de solicitud

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

Ejemplo de respuesta

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

Ejecución de una tarea guardada previamente

Se puede ejecutar un ajuste preestablecido creado previamente a través de la interfaz. En este caso, solo es necesario especificar las consultas. También se puede sobrescribir cualquier parámetro de la tarea; estos se aplicarán sobre los valores del ajuste preestablecido.

Ejemplo de solicitud

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

Ejemplo de respuesta

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

Bandera removeOnRestart

Esta bandera indica que las tareas se eliminarán al reiniciar el extractor.

Ejemplo de solicitud

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

Ejemplo de respuesta

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

Bandera removeOnComplete

Esta bandera indica que las tareas se eliminarán después de finalizar.

Ejemplo de solicitud

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

Ejemplo de respuesta

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

info

Obtención de información general sobre el estado de A-Parser y obtención de la lista de todos los extractores disponibles.

sugerencia

Es posible obtener el número de la versión actual de A-Parser directamente a través del enlace: https://a-parser.com/members/versions

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

Ejemplo de solicitud

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

Ejemplo de respuesta

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

Obtención de la configuración del extractor y del ajuste preestablecido especificados.

sugerencia

Con este método se puede obtener la lista completa de parámetros para utilizar en otras solicitudes de API.

Ejemplo de solicitud

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

Ejemplo de respuesta

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

Solicitud de la lista de proxies activos. Se devuelve una lista de proxies activos de todos los comprobadores de proxy.

Ejemplo de solicitud

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

Ejemplo de respuesta

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

El IP:puerto del proxy se indicará como el nombre del array. El primer elemento del array es el tipo de proxy, que puede tomar 3 valores: http, socks, socks4. Si se especifica autenticación por usuario/contraseña, el segundo y tercer elemento serán el usuario y la contraseña.

También se puede obtener una lista de proxies solo de comprobadores de proxy específicos. Para ello, se debe pasar adicionalmente el array checkers.

Ejemplo:

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

getTaskState

Obtención del estado de una tarea por su id.

Ejemplo de solicitud

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

Ejemplo de respuesta

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

En la respuesta se entrega el estado de la tarea (status) y sus estadísticas (state).

También se puede obtener información de varias tareas a la vez; para ello se debe pasar un array de ids.

Ejemplo de solicitud

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

En este caso, la respuesta será un array con los datos de cada tarea.

Ejemplo de respuesta

{
"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
}
},
...datos de las demás tareas...
]
}

getTaskConf

Obtención de la configuración de una tarea por su id.

Ejemplo de solicitud

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

Ejemplo de respuesta

En la respuesta se entregan los ajustes de la tarea, incluyendo el nombre del archivo resultante.

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

Obtención de un enlace para descargar el resultado por el id de la tarea. A través del enlace obtenido, se puede descargar el archivo solo una vez, sin autenticación (se utiliza un token de un solo uso).

nota

Funciona solo con un nombre de archivo estático y $datefile.format(). Para convertir un nombre de archivo de resultado dinámico en uno estático, se puede utilizar la bandera del motor de plantillas isStaticTemplate().

Ejemplo de solicitud

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

Ejemplo de respuesta

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

getTasksList

Obtención de la lista de tareas activas. Si se pasa el parámetro adicional completed: 1, se obtendrá la lista de tareas finalizadas.

Ejemplo de solicitud

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

Ejemplo de respuesta

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

getParserInfo

Muestra una lista de todos los resultados disponibles que puede devolver el extractor especificado.

Ejemplo de solicitud

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

Ejemplo de respuesta

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

Obtención de la cantidad de cuentas de Yandex activas.

Ejemplo de solicitud

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

Ejemplo de respuesta

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

deleteTaskResultsFile

Eliminación del archivo de resultado por el id de la tarea.

Ejemplo de solicitud

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

Ejemplo de respuesta

{
"success": 1
}

changeTaskStatus

Cambio del estado de una tarea por su id. Existen solo 4 estados a los que se puede cambiar una tarea:

  • starting: inicio de la tarea
  • pausing: poner en pausa
  • stopping: detención de la tarea
  • deleting: eliminación de la tarea

Ejemplo de solicitud

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

Ejemplo de respuesta

{
"success": 1
}

changeProxyCheckerState

Cambio del estado del comprobador de proxy (1 - activado / 0 - desactivado).

Ejemplo de solicitud

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

Ejemplo de respuesta

{
"success": 1
}

moveTask

Movimiento de una tarea en la cola por su id. Direcciones de movimiento posibles:

  • start: al principio de la cola
  • end: al final de la cola
  • up: una posición hacia arriba
  • down: una posición hacia abajo

Ejemplo de solicitud

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

Ejemplo de respuesta

{
"success": 1
}

update

Actualiza el archivo ejecutable del extractor a la última versión disponible. Después de enviar el comando, A-Parser se reiniciará automáticamente. La API devolverá una respuesta de éxito después de haber descargado y actualizado el archivo ejecutable; esto puede tardar de 1 a 3 minutos.

Ejemplo de solicitud

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

Ejemplo de respuesta

{
"success": 1
}