EasySpider如何通过API调用来获得任务执行ID
在使用EasySpider进行自动化网页数据抓取时,任务配置常常需要修改一些参数,例如网址列表、循环点击次数、输入值等。
本文将介绍如何通过POSTMAN发送API请求,动态配置这些参数并生成新的任务ID,最终通过命令行执行该任务。
获取新的任务ID
我们可以通过POSTMAN发送POST请求来生成新的任务ID,以下是具体操作步骤。
1. 设置POST请求
- 调用方法:
POST
- 调用地址:
http://localhost:8074/invokeTask
- Body字段类型:
x-www-form-urlencoded
2. 设置参数
在POSTMAN中,进入Body选项卡,选择x-www-form-urlencoded
类型,并设置以下键值对:
id: 任务的ID号,可以从已有任务的API调用地址中获取。
EID: 已存在的任务执行ID,如果传递此值,将进入覆盖模式,新配置会覆盖原ID对应的任务配置文件。若不传递该参数,则为新增任务。
params: 一个包含所有输入参数的键值对对象。此字段传递任务中的输入参数,如打开的网页列表、点击循环次数、输入的文字内容等。
3. 发送请求
配置完成后,点击POSTMAN中的“发送”按钮。若请求成功,您将会在返回的数据中看到一个新的任务ID,如下所示:
json
{
"execution_ID": 37
}
三、使用命令行执行生成的任务
获得任务ID后,您可以使用命令行执行该任务。假设生成的任务ID为37
,可以在命令行中使用以下命令执行任务。
1. 进入EasySpider目录
首先进入EasySpider所在的目录,命令示例如下:
bash
cd D:\Documents\Projects\EasySpider
2. 执行任务
然后运行以下命令,通过生成的任务ID来执行任务:
bash
./EasySpider/resources/app/chrome_win64/easyspider_executestage.exe --id [37] --user_data 0 --server_address http://localhost:8074 --config_folder "D:/Documents/Projects/EasySpider/ElectronJS/" --headless 0 --read_type remote --config_file_name config.json --saved_file_name
其中,--id
后面的37
是通过POSTMAN获取的任务ID,其他参数可以根据具体需求进行调整。
四、JavaScript代码示例
如果想通过JavaScript来调用API生成任务ID,可以参考以下示例代码:
javascript
let param = {};
let t = $('#form').serializeArray();
t.forEach(function (item, index) {
param[item.name] = item.value;
});
let message = {
id: TASKID, // 任务ID号
EID: "1", // 已存在的任务执行ID,若为新增任务可不传
params: JSON.stringify(param)
};
// 发送POST请求获取任务ID
$.post("http://localhost:8074/invokeTask", message, function (EID) {
console.log("任务ID为:", EID);
});
此代码中的POST请求会返回一个execution_ID
,用于后续命令行执行任务。
五、后台处理逻辑简介
在后台,API处理逻辑会从tasks
文件夹中读取任务的默认.json
配置文件,将传递的参数替换默认值,并在execution_instances
文件夹中生成新的任务文件。随后,程序会根据新的配置文件来执行任务。
通过POSTMAN的API调用方式,我们可以灵活地动态设置EasySpider的任务配置,生成新的任务ID后再通过命令行执行任务。这种方式非常适合需要频繁修改参数的场景,为自动化任务配置和执行提供了极大的便利。