Phương thức API
ping
Kiểm tra hoạt động của máy chủ và API.
Ví dụ yêu cầu
{
"password": "pass",
"action": "ping"
}
Ví dụ phản hồi
{
"success": 1,
"data": "pong"
}
oneRequest
Một yêu cầu cào dữ liệu đơn lẻ, có thể sử dụng bất kỳ công cụ cào dữ liệu và mẫu thiết lập (preset) nào. Kết quả sẽ được tạo thành một chuỗi văn bản theo định dạng kết quả được chỉ định trong preset, cùng với nhật ký (log) hoạt động đầy đủ của công cụ cào dữ liệu.
Ví dụ yêu cầu
{
"password": "pass",
"action": "oneRequest",
"data": {
"query": "test",
"parser": "SE::Google",
"configPreset": "default",
"preset": "Pages Count use Proxy"
}
}
Mô tả các tham số có thể sử dụng:
parser- công cụ cào dữ liệu nào sẽ thực hiện yêu cầupreset- sử dụng mẫu thiết lập (preset) nàoconfigPreset- sử dụng cấu hình luồng (config) nàoquery- nội dung truy vấnrawResults- tham số tùy chọn, nếu được thiết lập thì thay vì chuỗi kết quả resultString, nó sẽ trả về một mảng results chứa tất cả các kết quả mà công cụ cào dữ liệu đó hỗ trợneedData- tham số tùy chọn, chỉ định có truyền data và pages trong phản hồi hay không, dùng để tiết kiệm bộ nhớ, mặc định là tắtdoLog- tham số tùy chọn, chỉ định có trả về nhật ký hoạt động cùng với kết quả hay không, mặc định là bậtoptions- mảng chứa các tùy chọn bổ sung áp dụng cho công cụ cào dữ liệu, ví dụ - override - cho phép ghi đè các giá trị trong preset
Ví dụ phản hồi
{
"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"
]
]
}
}
Mô tả các biến trong phản hồi:
resultString- chuỗi kết quảlogs- mảng chứa nhật ký thực hiện yêu cầu
Ghi đè tham số của công cụ cào dữ liệu
Trong options, bạn có thể ghi đè bất kỳ tham số nào của công cụ cào dữ liệu đang sử dụng, chúng sẽ được áp dụng thay cho các giá trị được chỉ định trong preset cài đặt.
Ví dụ yêu cầu:
{
"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
}
]
}
}
Phản hồi:
{
"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
Yêu cầu cào dữ liệu hàng loạt, có thể sử dụng bất kỳ công cụ cào dữ liệu và preset nào, đồng thời có thể chỉ định số lượng luồng để thực hiện cào dữ liệu. Kết quả sẽ là chuỗi được định dạng theo cấu trúc kết quả trong preset, cùng với nhật ký hoạt động chi tiết của từng luồng.
Ví dụ yêu cầu
{
"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"
]
}
}
Mô tả các biến có thể có trong data:
threads- số lượng luồng để cào dữ liệuqueries- mảng các truy vấn. Các biến còn lại hoàn toàn tương tự như oneRequest, ngoại trừquery
Ví dụ phản hồi
{
"success": 1,
"data": {
"logs": {
"0": {
"1": [
[
4,
1614935687,
"SE::Google::0",
"test1"
],
...
[
0,
1614935688,
"Thread complete work"
]
]
},
...nhật ký của các luồng còn lại...
},
"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
},
...kết quả của các truy vấn còn lại...
]
}
}
addTask
Thêm một tác vụ vào hàng đợi, tất cả các tham số tương tự như những gì được thiết lập trong giao diện Trình chỉnh sửa tác vụ
Để nhanh chóng có được cấu hình đầy đủ của một tác vụ, bạn có thể sử dụng Trình chỉnh sửa tác vụ, tạo tác vụ và lấy JSON cho yêu cầu API
Ví dụ yêu cầu
{
"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": "Liên kết;Neo\n",
"resultsAppend": "",
"queryBuilders": [],
"resultsBuilders": [],
"configOverrides": [],
"runTaskOnComplete": null,
"useResultsFileAsQueriesFile": false,
"runTaskOnCompleteConfig": "default",
"toolsJS": "",
"prio": 5,
"removeOnComplete": false,
"callURLOnComplete": "",
"queries": [
"test",
"bla-bla"
]
}
}
Ví dụ phản hồi
Phản hồi trả về id của tác vụ đã tạo.
{
"success": 1,
"data": "697403"
}
Tác vụ với các truy vấn từ tệp
Để các truy vấn trong tác vụ được lấy từ tệp, bạn cần thiết lập "queriesFrom": "file" và (các) đường dẫn đến (các) tệp truy vấn "queriesFile": ["queries1.txt", "queries2.txt"]. Các phần còn lại hoàn toàn giống như ví dụ trên.
Ví dụ yêu cầu
{
"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"
]
}
}
Ví dụ phản hồi
{
"success": 1,
"data": "5432"
}
Chạy một tác vụ đã lưu trước đó
Bạn có thể chạy một preset đã được tạo trước đó thông qua giao diện. Trong trường hợp này, bạn chỉ cần chỉ định các truy vấn. Bạn cũng có thể ghi đè bất kỳ tham số nào của tác vụ, chúng sẽ được sử dụng thay cho các giá trị trong preset.
Ví dụ yêu cầu
{
"password": "pass",
"action": "addTask",
"data": {
"queriesFrom": "text",
"queries": [
"google.com",
"yandex.ru"
],
"configPreset": "default",
"preset": "Analyze Domains"
}
}
Ví dụ phản hồi
{
"success": 1,
"data": "5436"
}
Cờ removeOnRestart
Cờ này chỉ định rằng các tác vụ sẽ bị xóa khi khởi động lại công cụ cào dữ liệu.
Ví dụ yêu cầu
{
"password": "pass",
"action": "addTask",
"data": {
"queriesFrom": "text",
"queries": [
"google.com",
"yandex.ru"
],
"configPreset": "default",
"preset": "Analyze Domains",
"removeOnRestart": 1
}
}
Ví dụ phản hồi
{
"success": 1,
"data": "5437"
}
Cờ removeOnComplete
Cờ này chỉ định rằng các tác vụ sẽ bị xóa sau khi hoàn thành.
Ví dụ yêu cầu
{
"password": "pass",
"action": "addTask",
"data": {
"queriesFrom": "text",
"queries": [
"google.com",
"yandex.ru"
],
"configPreset": "default",
"preset": "Analyze Domains",
"removeOnComplete": 1
}
}
Ví dụ phản hồi
{
"success": 1,
"data": "5438"
}
info
Lấy thông tin chung về trạng thái của A-Parser và danh sách tất cả các công cụ cào dữ liệu hiện có.
Có thể lấy số phiên bản hiện tại của A-Parser trực tiếp qua liên kết: https://a-parser.com/members/versions
Ví dụ:
{"lastBetaVersion":"1.2.1484","lastAlphaVersion":"1.2.1484","lastVersion":"1.2.1432"}
Ví dụ yêu cầu
{
"password": "pass",
"action": "info"
}
Ví dụ phản hồi
{
"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
Lấy các cài đặt của công cụ cào dữ liệu và preset được chỉ định.
Sử dụng phương thức này, bạn có thể lấy danh sách đầy đủ các tham số để sử dụng trong các yêu cầu API khác.
Ví dụ yêu cầu
{
"password": "pass",
"action": "getParserPreset",
"data": {
"parser": "SE::Google",
"preset": "default"
}
}
Ví dụ phản hồi
{
"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
Yêu cầu danh sách các proxy đang hoạt động. Trả về danh sách các proxy "sống" từ tất cả các trình kiểm tra proxy (proxychecker).
Ví dụ yêu cầu
{
"password": "pass",
"action": "getProxies"
}
Ví dụ phản hồi
{
"success": 1,
"data": {
"127.0.0.1:23486": [
"socks"
],
"127.0.0.1:23140": [
"socks"
],
"127.0.0.1:21971": [
"http"
]
}
}
IP:port của proxy sẽ được sử dụng làm tên của mảng. Phần tử đầu tiên của mảng là loại proxy, có thể nhận 3 giá trị - http, socks, socks4. Nếu có yêu cầu xác thực bằng login\password thì phần tử thứ hai và thứ ba sẽ là login và password.
Bạn cũng có thể lấy danh sách proxy chỉ từ các trình kiểm tra proxy nhất định. Để làm điều này, bạn cần truyền thêm mảng checkers.
Ví dụ:
{
"password": "pass",
"action": "getProxies",
"data": {
"checkers": [
"Elite proxies",
"free proxies"
]
}
}
getTaskState
Lấy trạng thái của tác vụ theo id của nó.
Ví dụ yêu cầu
{
"password": "pass",
"action": "getTaskState",
"data": {
"taskUid": "181"
}
}
Ví dụ phản hồi
{
"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
}
}
}
Phản hồi trả về trạng thái của tác vụ (status) và số liệu thống kê của nó (state).
Bạn cũng có thể lấy thông tin của nhiều tác vụ cùng lúc bằng cách truyền một mảng các id.
Ví dụ yêu cầu
{
"password": "pass",
"action": "getTaskState",
"data": {
"taskUid": [
"22",
"23",
"31"
]
}
}
Trong trường hợp này, phản hồi sẽ là một mảng chứa dữ liệu của từng tác vụ.
Ví dụ phản hồi
{
"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
}
},
...dữ liệu của các tác vụ còn lại...
]
}
getTaskConf
Lấy cấu hình của tác vụ theo id của nó.
Ví dụ yêu cầu
{
"password": "pass",
"action": "getTaskConf",
"data": {
"taskUid": "181"
}
}
Ví dụ phản hồi
Phản hồi trả về các cài đặt của tác vụ, bao gồm cả tên tệp kết quả cuối cùng.
{
"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
Lấy liên kết để tải xuống kết quả theo id tác vụ. Qua liên kết nhận được, bạn chỉ có thể tải xuống tệp một lần duy nhất mà không cần xác thực (sử dụng mã thông báo một lần).
Chỉ hoạt động với tên tệp tĩnh và $datefile.format(). Để chuyển đổi tên tệp kết quả động thành tĩnh, bạn có thể sử dụng cờ của công cụ tạo mẫu isStaticTemplate()
Ví dụ yêu cầu
{
"password": "pass",
"action": "getTaskResultsFile",
"data": {
"taskUid": "181"
}
}
Ví dụ phản hồi
{
"success": 1,
"data": "http://127.0.0.1:9091/downloadResults?fileName=Mar-05_13-12-23.txt&token=wbvwlkes"
}
getTasksList
Lấy danh sách các tác vụ đang hoạt động. Nếu truyền thêm tham số completed: 1, bạn sẽ nhận được danh sách các tác vụ đã hoàn thành.
Ví dụ yêu cầu
{
"password": "pass",
"action": "getTasksList",
"data": {
"completed": "1"
}
}
Ví dụ phản hồi
{
"success": 1,
"data": [
"2291",
"2324",
"2331",
"2384",
"2398",
"2434",
"2445",
"3482",
...
]
}
getParserInfo
Hiển thị danh sách tất cả các kết quả có sẵn mà công cụ cào dữ liệu được chỉ định có thể trả về.
Ví dụ yêu cầu
{
"password" : "pass",
"action" : "getParserInfo",
"data" : {
"parser" : "SE::Google"
}
}
Ví dụ phản hồi
{
"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
Lấy số lượng tài khoản Yandex đang hoạt động.
Ví dụ yêu cầu
{
"password": "pass",
"action": "getAccountsCount"
}
Ví dụ phản hồi
{
"success": 1,
"data": {
"SE::Yandex": 18
}
}
deleteTaskResultsFile
Xóa tệp kết quả theo id tác vụ.
Ví dụ yêu cầu
{
"password": "pass",
"action": "deleteTaskResultsFile",
"data": {
"taskUid": "181"
}
}
Ví dụ phản hồi
{
"success": 1
}
changeTaskStatus
Thay đổi trạng thái của tác vụ theo id của nó. Có tổng cộng 4 trạng thái mà bạn có thể chuyển đổi cho tác vụ:
- starting - bắt đầu tác vụ
- pausing - tạm dừng tác vụ
- stopping - dừng tác vụ
- deleting - xóa tác vụ
Ví dụ yêu cầu
{
"password": "pass",
"action": "changeTaskStatus",
"data": {
"taskUid": "181",
"toStatus": "deleting"
}
}
Ví dụ phản hồi
{
"success": 1
}
changeProxyCheckerState
Thay đổi trạng thái của trình kiểm tra proxy (1 - bật / 0 - tắt).
Ví dụ yêu cầu
{
"password": "pass",
"action": "changeProxyCheckerState",
"data": {
"checker": "proxychecker name",
"state": 1
}
}
Ví dụ phản hồi
{
"success": 1
}
moveTask
Di chuyển vị trí của tác vụ trong hàng đợi theo id của nó. Các hướng di chuyển có thể:
- start - lên đầu hàng đợi
- end - xuống cuối hàng đợi
- up - lên trên một vị trí
- down - xuống dưới một vị trí
Ví dụ yêu cầu
{
"password": "pass",
"action": "moveTask",
"data": {
"taskUid": "181",
"direction": "start"
}
}
Ví dụ phản hồi
{
"success": 1
}
update
Cập nhật tệp thực thi của công cụ cào dữ liệu lên phiên bản mới nhất hiện có. Sau khi gửi lệnh, A-Parser sẽ tự động được khởi động lại. API sẽ trả về phản hồi thành công sau khi đã tải xuống và cập nhật tệp thực thi, quá trình này có thể mất từ 1-3 phút.
Ví dụ yêu cầu
{
"password": "pass",
"action": "update"
}
Ví dụ phản hồi
{
"success": 1
}