APIメソッド
ping
サーバーとAPIの動作確認。
リクエスト例
{
"password": "pass",
"action": "ping"
}
レスポンス例
{
"success": 1,
"data": "pong"
}
oneRequest
単一のスクレイピングリクエスト。任意のスクレイパーとプリセットを使用できます。結果は、プリセットで指定された結果フォーマットに従った文字列と、スクレイパーの完全な動作ログとして生成されます。
リクエスト例
{
"password": "pass",
"action": "oneRequest",
"data": {
"query": "test",
"parser": "SE::Google",
"configPreset": "default",
"preset": "Pages Count use Proxy"
}
}
利用可能なパラメータの説明:
parser- リクエストを実行するスクレイパーpreset- 使用するプリセットconfigPreset- 使用するスレッド設定(コンフィグプリセット)query- クエリ自体rawResults- オプションパラメータ。設定されている場合、結果文字列 resultString の代わりに、指定したスクレイパーがサポートするすべての結果を含む配列 results を返します。needData- オプションパラメータ。レスポンスに data と pages を含めるかどうかを指定します。メモリ節約のために使用され、デフォルトはオフです。doLog- オプションパラメータ。結果と一緒に動作ログを返すかどうかを指定します。デフォルトはオンです。options- スクレイパーに適用される追加オプションの配列。例:override - プリセットの値を上書きできます。
レスポンス例
{
"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"
]
]
}
}
レスポンス内の変数の説明:
resultString- 結果文字列logs- リクエスト実行ログの配列
スクレイパーパラメータの上書き
options では、使用するスクレイパーの任意のパラメータを上書きできます。これらは設定プリセットで指定された値よりも優先して使用されます。
リクエスト例:
{
"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
}
]
}
}
レスポンス:
{
"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
一括スクレイピングリクエスト。任意のスクレイパーとプリセットを使用でき、スクレイピングを実行するスレッド数も指定できます。結果は、プリセットで指定された結果フォーマットに従った文字列と、各スレッドごとのスクレイパーの完全な動作ログとして生成されます。
リクエスト例
{
"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"
]
}
}
data 内の利用可能な変数の説明:
threads- スクレイピング用のスレッド数queries- クエリの配列。その他の変数は、queryを除き oneRequest と完全に同様です。
レスポンス例
{
"success": 1,
"data": {
"logs": {
"0": {
"1": [
[
4,
1614935687,
"SE::Google::0",
"test1"
],
...
[
0,
1614935688,
"Thread complete work"
]
]
},
...他のスレッドのログ...
},
"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
},
...他のクエリの結果...
]
}
}
addTask
キューへのタスク追加。すべてのパラメータはタスクエディタのインターフェースで設定するものと同様です。
タスクの完全な構成を素早く取得するには、タスクエディタ を利用してタスクを作成し、APIリクエスト用のJSONを取得することができます。
リクエスト例
{
"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": "リンク;アンカー\n",
"resultsAppend": "",
"queryBuilders": [],
"resultsBuilders": [],
"configOverrides": [],
"runTaskOnComplete": null,
"useResultsFileAsQueriesFile": false,
"runTaskOnCompleteConfig": "default",
"toolsJS": "",
"prio": 5,
"removeOnComplete": false,
"callURLOnComplete": "",
"queries": [
"test",
"bla-bla"
]
}
}
レスポンス例
レスポンスには作成されたタスクの id が返されます。
{
"success": 1,
"data": "697403"
}
ファイルからのクエリを使用したタスク
タスクでファイルからクエリを取得するには、"queriesFrom": "file" とクエリファイルへのパス "queriesFile": ["queries1.txt", "queries2.txt"] を指定する必要があります。それ以外は上記の例と同じです。
リクエスト例
{
"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"
]
}
}
レスポンス例
{
"success": 1,
"data": "5432"
}
以前に保存されたタスクの開始
インターフェースを通じて事前に作成されたプリセットを実行できます。この場合、クエリを指定するだけで済みます。タスクの任意のパラメータを上書きすることもでき、それらはプリセット内の値よりも優先して使用されます。
リクエスト例
{
"password": "pass",
"action": "addTask",
"data": {
"queriesFrom": "text",
"queries": [
"google.com",
"yandex.ru"
],
"configPreset": "default",
"preset": "Analyze Domains"
}
}
レスポンス例
{
"success": 1,
"data": "5436"
}
removeOnRestart フラグ
このフラグは、スクレイパーの再起動時にタスクを削除することを指定します。
リクエスト例
{
"password": "pass",
"action": "addTask",
"data": {
"queriesFrom": "text",
"queries": [
"google.com",
"yandex.ru"
],
"configPreset": "default",
"preset": "Analyze Domains",
"removeOnRestart": 1
}
}
レスポンス例
{
"success": 1,
"data": "5437"
}
removeOnComplete フラグ
このフラグは、完了後にタスクを削除することを指定します。
リクエスト例
{
"password": "pass",
"action": "addTask",
"data": {
"queriesFrom": "text",
"queries": [
"google.com",
"yandex.ru"
],
"configPreset": "default",
"preset": "Analyze Domains",
"removeOnComplete": 1
}
}
レスポンス例
{
"success": 1,
"data": "5438"
}
info
A-Parser の状態に関する一般情報の取得、および利用可能なすべてのスクレイパーのリストの取得。
A-Parser の最新バージョン番号は、以下のリンクから直接確認できます: https://a-parser.com/members/versions
例:
{"lastBetaVersion":"1.2.1484","lastAlphaVersion":"1.2.1484","lastVersion":"1.2.1432"}
リクエスト例
{
"password": "pass",
"action": "info"
}
レスポンス例
{
"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
指定されたスクレイパーとプリセットの設定を取得します。
このメソッドを使用すると、他の API リクエストで使用するためのパラメータの完全なリストを取得できます。
リクエスト例
{
"password": "pass",
"action": "getParserPreset",
"data": {
"parser": "SE::Google",
"preset": "default"
}
}
レスポンス例
{
"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
有効なプロキシのリストをリクエストします。すべてのプロキシチェッカーから有効なプロキシのリストが返されます。
リクエスト例
{
"password": "pass",
"action": "getProxies"
}
レスポンス例
{
"success": 1,
"data": {
"127.0.0.1:23486": [
"socks"
],
"127.0.0.1:23140": [
"socks"
],
"127.0.0.1:21971": [
"http"
]
}
}
プロキシの IP:port が配列の名前として指定されます。配列の最初の要素はプロキシのタイプで、http、socks、socks4 の 3 つの値をとることができます。ユーザー名/パスワードによる認証が指定されている場合、2 番目と 3 番目の要素がユーザー名とパスワードになります。
また、特定のプロキシチェッカーからのみプロキシリストを取得することもできます。そのためには、追加で checkers 配列を渡す必要があります。
例:
{
"password": "pass",
"action": "getProxies",
"data": {
"checkers": [
"Elite proxies",
"free proxies"
]
}
}
getTaskState
タスク id によるタスク状態の取得。
リクエスト例
{
"password": "pass",
"action": "getTaskState",
"data": {
"taskUid": "181"
}
}
レスポンス例
{
"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
}
}
}
レスポンスにはタスクのステータス (status) とその統計情報 (state) が返されます。
また、複数のタスクに関する情報を一度に取得することもできます。その場合は id の配列を渡します。
リクエスト例
{
"password": "pass",
"action": "getTaskState",
"data": {
"taskUid": [
"22",
"23",
"31"
]
}
}
この場合、レスポンスは各タスクのデータを含む配列になります。
レスポンス例
{
"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
}
},
...他のタスクのデータ...
]
}
getTaskConf
タスク id によるタスク構成の取得。
リクエスト例
{
"password": "pass",
"action": "getTaskConf",
"data": {
"taskUid": "181"
}
}
レスポンス例
レスポンスには、結果のファイル名を含むタスクの設定が返されます。
{
"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
タスク id による結果ダウンロード用リンクの取得。取得したリンクからは、認証なしで一度だけファイルをダウンロードできます(使い捨てトークンが使用されます)。
静的なファイル名および $datefile.format() でのみ動作します。動的な結果ファイル名を静的なものに変換するには、テンプレートエンジンのフラグ isStaticTemplate() を使用できます。
リクエスト例
{
"password": "pass",
"action": "getTaskResultsFile",
"data": {
"taskUid": "181"
}
}
レスポンス例
{
"success": 1,
"data": "http://127.0.0.1:9091/downloadResults?fileName=Mar-05_13-12-23.txt&token=wbvwlkes"
}
getTasksList
アクティブなタスクのリストを取得します。追加パラメータ completed: 1 を渡すと、完了したタスクのリストを取得できます。
リクエスト例
{
"password": "pass",
"action": "getTasksList",
"data": {
"completed": "1"
}
}
レスポンス例
{
"success": 1,
"data": [
"2291",
"2324",
"2331",
"2384",
"2398",
"2434",
"2445",
"3482",
...
]
}
getParserInfo
指定されたスクレイパーが返すことのできる、利用可能なすべての結果のリストを表示します。
リクエスト例
{
"password" : "pass",
"action" : "getParserInfo",
"data" : {
"parser" : "SE::Google"
}
}
レスポンス例
{
"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
アクティブな Yandex アカウントの数を取得します。
リクエスト例
{
"password": "pass",
"action": "getAccountsCount"
}
レスポンス例
{
"success": 1,
"data": {
"SE::Yandex": 18
}
}
deleteTaskResultsFile
タスク id による結果ファイルの削除。
リクエスト例
{
"password": "pass",
"action": "deleteTaskResultsFile",
"data": {
"taskUid": "181"
}
}
レスポンス例
{
"success": 1
}
changeTaskStatus
タスク id によるタスクステータスの変更。タスクを移行できる状態は全部で 4 つあります:
- starting - タスクの開始
- pausing - 一時停止
- stopping - タスクの停止
- deleting - タスクの削除
リクエスト例
{
"password": "pass",
"action": "changeTaskStatus",
"data": {
"taskUid": "181",
"toStatus": "deleting"
}
}
レスポンス例
{
"success": 1
}
changeProxyCheckerState
プロキシチェッカーの状態変更 (1 - 有効 / 0 - 無効)。
リクエスト例
{
"password": "pass",
"action": "changeProxyCheckerState",
"data": {
"checker": "proxychecker name",
"state": 1
}
}
レスポンス例
{
"success": 1
}
moveTask
タスク id によるキュー内でのタスク移動。可能な移動方向:
- start - キューの先頭へ
- end - キューの最後へ
- up - 1つ上の位置へ
- down - 1つ下の位置へ
リクエスト例
{
"password": "pass",
"action": "moveTask",
"data": {
"taskUid": "181",
"direction": "start"
}
}
レスポンス例
{
"success": 1
}
update
スクレイパーの実行ファイルを最新の利用可能なバージョンに更新します。コマンド送信後、A-Parser は自動的に再起動されます。API は実行ファイルのダウンロードと更新が完了した後に成功のレスポンスを返します。これには 1〜3 分かかる場合があります。
リクエスト例
{
"password": "pass",
"action": "update"
}
レスポンス例
{
"success": 1
}