mirror of
https://github.com/NaiboWang/EasySpider.git
synced 2025-04-22 23:24:22 +08:00
Version 0.3.0 Beta
This commit is contained in:
parent
c6dafafd63
commit
6096fb46c3
@ -1 +1 @@
|
|||||||
{"id":0,"name":"新web采adsf","url":"https://www.jd.com","links":"https://www.jd.com","containJudge":false,"desc":"https://www.jd.com","inputParameters":[{"id":0,"name":"urlList_0","nodeId":1,"nodeName":"打开网页","value":"https://www.jd.com","desc":"要采集的网址列表,多行以\\n分开","type":"string","exampleValue":"https://www.jd.com"},{"id":1,"name":"inputText_1","nodeName":"提取数据","nodeId":2,"desc":"要输入的文本,如京东搜索框输入:电脑","type":"string","exampleValue":"赛跟","value":"赛跟"}],"outputParameters":[],"graph":[{"index":0,"id":0,"parentId":0,"type":-1,"option":0,"title":"root","sequence":[1,2,3],"parameters":{"history":1,"tabIndex":0,"useLoop":false,"xpath":"","wait":0},"isInLoop":false},{"id":1,"index":1,"parentId":0,"type":0,"option":1,"title":"打开网页","sequence":[],"isInLoop":false,"position":0,"parameters":{"useLoop":false,"xpath":"","wait":0,"url":"https://www.jd.com","links":"https://www.jd.com","scrollType":0,"scrollCount":0}},{"id":2,"index":2,"parentId":0,"type":0,"option":4,"title":"提取数据","sequence":[],"isInLoop":false,"position":1,"parameters":{"history":4,"tabIndex":-1,"useLoop":false,"xpath":"//*[@id=\"key\"]","wait":0,"value":"赛跟"}},{"id":3,"index":3,"parentId":0,"type":0,"option":2,"title":"打开网页","sequence":[],"isInLoop":false,"position":2,"parameters":{"history":4,"tabIndex":-1,"useLoop":false,"xpath":"//*[@id=\"search-btn\"]/i[1]","wait":0,"scrollType":0,"scrollCount":0,"paras":[]}}]}
|
{"id":0,"name":"新web采集任务","url":"https://www.jd.com","links":"https://www.jd.com","create_time":"5/19/2023, 2:14:39 AM","containJudge":false,"desc":"https://www.jd.com","inputParameters":[{"id":0,"name":"urlList_0","nodeId":1,"nodeName":"打开网页","value":"https://www.jd.com","desc":"要采集的网址列表,多行以\\n分开","type":"string","exampleValue":"https://www.jd.com"}],"outputParameters":[{"id":0,"name":"自定义操作2","desc":"自定义操作返回的数据","type":"string","exampleValue":""},{"id":1,"name":"自定义操作","desc":"自定义操作返回的数据","type":"string","exampleValue":""}],"graph":[{"index":0,"id":0,"parentId":0,"type":-1,"option":0,"title":"root","sequence":[1,2],"parameters":{"history":1,"tabIndex":0,"useLoop":false,"xpath":"","wait":0},"isInLoop":false},{"id":1,"index":1,"parentId":0,"type":0,"option":1,"title":"打开网页","sequence":[],"isInLoop":false,"position":0,"parameters":{"useLoop":false,"xpath":"","wait":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"url":"https://www.jd.com","links":"https://www.jd.com","scrollType":0,"scrollCount":0}},{"id":2,"index":2,"parentId":0,"type":1,"option":8,"title":"循环","sequence":[3,4],"isInLoop":false,"position":1,"parameters":{"history":1,"tabIndex":0,"useLoop":false,"xpath":"","wait":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"scrollType":0,"scrollCount":0,"loopType":"5","pathList":"","textList":"","code":"dsaf","waitTime":0,"exitCount":0,"historyWait":2}},{"id":3,"index":3,"parentId":2,"type":0,"option":5,"title":"自定义操作2","sequence":[],"isInLoop":true,"position":0,"parameters":{"history":1,"tabIndex":0,"useLoop":false,"xpath":"","wait":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"codeMode":0,"code":"return window.innerHeight","waitTime":0,"recordASField":"1"}},{"id":4,"index":4,"parentId":2,"type":0,"option":5,"title":"自定义操作","sequence":[],"isInLoop":true,"position":1,"parameters":{"history":1,"tabIndex":0,"useLoop":false,"xpath":"","wait":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"codeMode":"1","code":"python D:/test.py","waitTime":0,"recordASField":"1"}}]}
|
@ -41,11 +41,11 @@
|
|||||||
<button type="button" data=2 class="btn btn-outline-primary options">点击元素</button>
|
<button type="button" data=2 class="btn btn-outline-primary options">点击元素</button>
|
||||||
<button type="button" data=3 class="btn btn-outline-primary options">提取数据</button>
|
<button type="button" data=3 class="btn btn-outline-primary options">提取数据</button>
|
||||||
<button type="button" data=4 class="btn btn-outline-primary options">输入文字</button>
|
<button type="button" data=4 class="btn btn-outline-primary options">输入文字</button>
|
||||||
<button type="button" data=5 class="btn btn-outline-primary options">自定义操作</button>
|
<button type="button" data=5 class="btn btn-outline-primary options" style="font-weight: bold">自定义操作</button>
|
||||||
<button type="button" data=6 style="font-size: 14px!important;" class="btn btn-outline-primary options">切换下拉选项</button>
|
<button type="button" data=6 style="font-size: 14px!important;" class="btn btn-outline-primary options">切换下拉选项</button>
|
||||||
<button type="button" data=7 class="btn btn-outline-primary options">移动到元素</button>
|
<button type="button" data=7 class="btn btn-outline-primary options">移动到元素</button>
|
||||||
<button type="button" data=8 class="btn btn-outline-primary options">循环</button>
|
<button type="button" data=8 class="btn btn-outline-primary options" style="font-weight: bold">循环</button>
|
||||||
<button type="button" data=9 class="btn btn-outline-primary options">判断条件</button>
|
<button type="button" data=9 class="btn btn-outline-primary options" style="font-weight: bold">判断条件</button>
|
||||||
<div>-----------------</div>
|
<div>-----------------</div>
|
||||||
<button type="button" data=13 class="btn btn-outline-primary options" title="调整下一个要插入的节点的位置">调整锚点</button>
|
<button type="button" data=13 class="btn btn-outline-primary options" title="调整下一个要插入的节点的位置">调整锚点</button>
|
||||||
<button type="button" data=10 class="btn btn-outline-primary options">剪切元素</button>
|
<button type="button" data=10 class="btn btn-outline-primary options">剪切元素</button>
|
||||||
@ -141,7 +141,7 @@
|
|||||||
<div>
|
<div>
|
||||||
<label>点击该元素<strong>前</strong>针对该元素执行一段JavaScript脚本: </label>
|
<label>点击该元素<strong>前</strong>针对该元素执行一段JavaScript脚本: </label>
|
||||||
<textarea onkeydown="inputDelete(event)" class="form-control" rows="2"
|
<textarea onkeydown="inputDelete(event)" class="form-control" rows="2"
|
||||||
placeholder='该元素用arguments[0]来表示,示例JS代码:arguments[0].innerText = arguments[0].innerText("上海","Shanghai")即实现了将元素文字中所有的“上海”替换成”Shanghai“的功能,然后后续如提取数据时就会提取到替换后的值。' v-model='nowNode["parameters"]["beforeJS"]'></textarea>
|
placeholder='该元素用arguments[0]来表示,示例JS代码:arguments[0].innerText = arguments[0].innerText.replace("上海","Shanghai")即实现了将元素文字中所有的“上海”替换成”Shanghai“的功能,然后后续如提取数据时就会提取到替换后的值。' v-model='nowNode["parameters"]["beforeJS"]'></textarea>
|
||||||
<label>最长等待脚本执行时间(0代表无限等待): </label>
|
<label>最长等待脚本执行时间(0代表无限等待): </label>
|
||||||
<input onkeydown="inputDelete(event)" required class="form-control" type="number" v-model.number='nowNode["parameters"]["beforeJSWaitTime"]'></input>
|
<input onkeydown="inputDelete(event)" required class="form-control" type="number" v-model.number='nowNode["parameters"]["beforeJSWaitTime"]'></input>
|
||||||
<label>点击该元素<strong>后</strong>针对该元素执行一段JavaScript脚本: </label>
|
<label>点击该元素<strong>后</strong>针对该元素执行一段JavaScript脚本: </label>
|
||||||
@ -195,7 +195,7 @@
|
|||||||
<div>
|
<div>
|
||||||
<label>提取该元素数据<strong>前</strong>针对该元素执行一段JavaScript脚本: </label>
|
<label>提取该元素数据<strong>前</strong>针对该元素执行一段JavaScript脚本: </label>
|
||||||
<textarea onkeydown="inputDelete(event)" class="form-control" rows="2"
|
<textarea onkeydown="inputDelete(event)" class="form-control" rows="2"
|
||||||
placeholder='该元素用arguments[0]来表示,示例JS代码:arguments[0].innerText = arguments[0].innerText("上海","Shanghai")即实现了将元素文字中所有的“上海”替换成”Shanghai“的功能,然后后续如提取数据时就会提取到替换后的值。' v-model='paras.parameters[paraIndex]["beforeJS"]'></textarea>
|
placeholder='该元素用arguments[0]来表示,示例JS代码:arguments[0].innerText = arguments[0].innerText.replace("上海","Shanghai")即实现了将元素文字中所有的“上海”替换成”Shanghai“的功能,然后后续如提取数据时就会提取到替换后的值。' v-model='paras.parameters[paraIndex]["beforeJS"]'></textarea>
|
||||||
<label>最长等待脚本执行时间(0代表无限等待): </label>
|
<label>最长等待脚本执行时间(0代表无限等待): </label>
|
||||||
<input onkeydown="inputDelete(event)" required class="form-control" type="number" v-model.number='paras.parameters[paraIndex]["beforeJSWaitTime"]'></input>
|
<input onkeydown="inputDelete(event)" required class="form-control" type="number" v-model.number='paras.parameters[paraIndex]["beforeJSWaitTime"]'></input>
|
||||||
<label>提取该元素数据<strong>后</strong>针对该元素执行一段JavaScript脚本: </label>
|
<label>提取该元素数据<strong>后</strong>针对该元素执行一段JavaScript脚本: </label>
|
||||||
@ -269,7 +269,7 @@
|
|||||||
<div>
|
<div>
|
||||||
<label>对该元素输入文字<strong>前</strong>针对该元素执行一段JavaScript脚本: </label>
|
<label>对该元素输入文字<strong>前</strong>针对该元素执行一段JavaScript脚本: </label>
|
||||||
<textarea onkeydown="inputDelete(event)" class="form-control" rows="2"
|
<textarea onkeydown="inputDelete(event)" class="form-control" rows="2"
|
||||||
placeholder='该元素用arguments[0]来表示,示例JS代码:arguments[0].innerText = arguments[0].innerText("上海","Shanghai")即实现了将元素文字中所有的“上海”替换成”Shanghai“的功能,然后后续如提取数据时就会提取到替换后的值。' v-model='nowNode["parameters"]["beforeJS"]'></textarea>
|
placeholder='该元素用arguments[0]来表示,示例JS代码:arguments[0].innerText = arguments[0].innerText.replace("上海","Shanghai")即实现了将元素文字中所有的“上海”替换成”Shanghai“的功能,然后后续如提取数据时就会提取到替换后的值。' v-model='nowNode["parameters"]["beforeJS"]'></textarea>
|
||||||
<label>最长等待脚本执行时间(0代表无限等待): </label>
|
<label>最长等待脚本执行时间(0代表无限等待): </label>
|
||||||
<input onkeydown="inputDelete(event)" required class="form-control" type="number" v-model.number='nowNode["parameters"]["beforeJSWaitTime"]'></input>
|
<input onkeydown="inputDelete(event)" required class="form-control" type="number" v-model.number='nowNode["parameters"]["beforeJSWaitTime"]'></input>
|
||||||
<label>对该元素输入文字<strong>后</strong>针对该元素执行一段JavaScript脚本: </label>
|
<label>对该元素输入文字<strong>后</strong>针对该元素执行一段JavaScript脚本: </label>
|
||||||
@ -289,8 +289,12 @@
|
|||||||
|
|
||||||
<div>
|
<div>
|
||||||
<label>代码/脚本内容: </label>
|
<label>代码/脚本内容: </label>
|
||||||
<textarea onkeydown="inputDelete(event)" class="form-control" rows="2" v-model='nowNode["parameters"]["code"]' placeholder="输入JS或系统命令,如:document.body.click() 或 python D:/test.py,分别为JS命令和系统命令示例。"></textarea>
|
<textarea onkeydown="inputDelete(event)" class="form-control" rows="2" v-model='nowNode["parameters"]["code"]' placeholder="输入JS或系统命令,如:document.body.innerText = '1' 或 python D:/test.py,分别为JS命令和系统命令示例。"></textarea>
|
||||||
<p><input onkeydown="inputDelete(event)" type="checkbox" v-model='nowNode["parameters"]["recordASField"]'></input>将执行后的输出/返回值作为字段记录</p>
|
<p style="margin-top: 15px">是否将执行后的输出/返回值作为字段记录:</p>
|
||||||
|
<p><select v-model='nowNode["parameters"]["recordASField"]' class="form-control">
|
||||||
|
<option value = 0>否</option>
|
||||||
|
<option value = 1>是</option>
|
||||||
|
</select></p>
|
||||||
<label>最长等待脚本执行时间(0代表无限等待): </label>
|
<label>最长等待脚本执行时间(0代表无限等待): </label>
|
||||||
<input onkeydown="inputDelete(event)" required class="form-control" type="number" v-model.number='nowNode["parameters"]["waitTime"]'></input>
|
<input onkeydown="inputDelete(event)" required class="form-control" type="number" v-model.number='nowNode["parameters"]["waitTime"]'></input>
|
||||||
</div>
|
</div>
|
||||||
|
@ -552,12 +552,12 @@ document.onkeydown = function(e) {
|
|||||||
deleteElement();
|
deleteElement();
|
||||||
}
|
}
|
||||||
} else { //ctrl+s保存服务
|
} else { //ctrl+s保存服务
|
||||||
var currKey = 0,
|
let currKey = 0,
|
||||||
e = e || event || window.event;
|
e = e || event || window.event;
|
||||||
currKey = e.keyCode || e.which || e.charCode;
|
currKey = e.keyCode || e.which || e.charCode;
|
||||||
if (currKey == 83 && (e.ctrlKey || e.metaKey)) {
|
if (currKey == 83 && (e.ctrlKey || e.metaKey)) {
|
||||||
$('#save').click();
|
$('#save').click();
|
||||||
return false;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -52,7 +52,7 @@
|
|||||||
<label>{{`Please open a terminal, go to EasySpider's folder, and then copy (Command/Ctrl + c) the following command to run the task (EasySpider cannot quit when executing command, unless --read_type is set to "local"):~请在EasySpider目录下打开命令行工具Terminal,然后复制(Command/Ctrl + c)和运行以下命令以执行任务(执行命令时不能退出EasySpider,除非将--read_type设置为local):` | lang}}</label>
|
<label>{{`Please open a terminal, go to EasySpider's folder, and then copy (Command/Ctrl + c) the following command to run the task (EasySpider cannot quit when executing command, unless --read_type is set to "local"):~请在EasySpider目录下打开命令行工具Terminal,然后复制(Command/Ctrl + c)和运行以下命令以执行任务(执行命令时不能退出EasySpider,除非将--read_type设置为local):` | lang}}</label>
|
||||||
<label><a href="https://github.com/NaiboWang/EasySpider/wiki/Argument-Instruction" target="_blank">{{`Click Here~点击这里` | lang}}</a> {{`Here to see argument instruction.~这里查看参数配置说明。` | lang}}</label>
|
<label><a href="https://github.com/NaiboWang/EasySpider/wiki/Argument-Instruction" target="_blank">{{`Click Here~点击这里` | lang}}</a> {{`Here to see argument instruction.~这里查看参数配置说明。` | lang}}</label>
|
||||||
<textarea class="form-control" style="height:150px">cd {{easyspider_location}}
|
<textarea class="form-control" style="height:150px">cd {{easyspider_location}}
|
||||||
{{command}} --config_folder "{{config_folder}}" --headless 0 --read_type remote --config_name config.json --saved_file_name </textarea>
|
{{command}} --config_folder "{{config_folder}}" --headless 0 --read_type remote --config_file_name config.json --saved_file_name </textarea>
|
||||||
</div>
|
</div>
|
||||||
<!-- <div class="modal-footer">
|
<!-- <div class="modal-footer">
|
||||||
<button type="button" id="saveAsButton" class="btn btn-outline-primary">另存为</button>
|
<button type="button" id="saveAsButton" class="btn btn-outline-primary">另存为</button>
|
||||||
@ -202,7 +202,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
localExecute: function (with_user_data=false) {
|
localExecute: function (with_user_data=false) {
|
||||||
if (this.ID == "") {
|
if (this.ID === "") {
|
||||||
if (getUrlParam("lang") == "en" || getUrlParam("lang") == "") {
|
if (getUrlParam("lang") == "en" || getUrlParam("lang") == "") {
|
||||||
alert("Please get EID first!");
|
alert("Please get EID first!");
|
||||||
} else {
|
} else {
|
||||||
|
@ -239,13 +239,13 @@ var sId = getUrlParam('id');
|
|||||||
var backEndAddressServiceWrapper = getUrlParam("backEndAddressServiceWrapper");
|
var backEndAddressServiceWrapper = getUrlParam("backEndAddressServiceWrapper");
|
||||||
|
|
||||||
function saveService(type) {
|
function saveService(type) {
|
||||||
var serviceId = $("#serviceId").val();
|
let serviceId = $("#serviceId").val();
|
||||||
var text = "确认要保存任务吗(不能用鼠标点击时,请按键盘回车键)?";
|
let text = "确认要保存任务吗(不能用鼠标点击时,请按键盘回车键)?";
|
||||||
if (type == 1) { //任务另存为
|
if (type == 1) { //任务另存为
|
||||||
serviceId = -1;
|
serviceId = -1;
|
||||||
text = "确认要另存为任务吗(不能用鼠标点击时,请按键盘回车键)?";
|
text = "确认要另存为任务吗(不能用鼠标点击时,请按键盘回车键)?";
|
||||||
}
|
}
|
||||||
if (confirm(text)) {
|
// if (confirm(text)) {
|
||||||
let serviceName = $("#serviceName").val();
|
let serviceName = $("#serviceName").val();
|
||||||
let url = $("#url").val();
|
let url = $("#url").val();
|
||||||
let serviceDescription = $("#serviceDescription").val();
|
let serviceDescription = $("#serviceDescription").val();
|
||||||
@ -330,7 +330,7 @@ function saveService(type) {
|
|||||||
}
|
}
|
||||||
} else if (nodeList[i]["option"] == 5) //自定义操作
|
} else if (nodeList[i]["option"] == 5) //自定义操作
|
||||||
{
|
{
|
||||||
if (nodeList[i]["parameters"]["recordASField"]) {
|
if (nodeList[i]["parameters"]["recordASField"] == 1) {
|
||||||
let id = outputIndex++;
|
let id = outputIndex++;
|
||||||
let title = nodeList[i]["title"];
|
let title = nodeList[i]["title"];
|
||||||
if (outputNames.indexOf(title) >= 0) { //参数名称已经被添加
|
if (outputNames.indexOf(title) >= 0) { //参数名称已经被添加
|
||||||
@ -361,21 +361,23 @@ function saveService(type) {
|
|||||||
"name": serviceName,
|
"name": serviceName,
|
||||||
"url": url,
|
"url": url,
|
||||||
"links": links,
|
"links": links,
|
||||||
|
"create_time": new Date().toLocaleString(),
|
||||||
"containJudge": containJudge,
|
"containJudge": containJudge,
|
||||||
"desc": serviceDescription,
|
"desc": serviceDescription,
|
||||||
"inputParameters": inputParameters,
|
"inputParameters": inputParameters,
|
||||||
"outputParameters": outputParameters,
|
"outputParameters": outputParameters,
|
||||||
"graph": nodeList, //图结构要存储下来
|
"graph": nodeList, //图结构要存储下来
|
||||||
};
|
};
|
||||||
$.post(backEndAddressServiceWrapper + "/manageTask", { paras: JSON.stringify(serviceInfo) }, function(result) { $("#serviceId").val(parseInt(result)) });
|
$.post(backEndAddressServiceWrapper + "/manageTask", { paras: JSON.stringify(serviceInfo) },
|
||||||
|
function(result) { $("#serviceId").val(parseInt(result)) });
|
||||||
// alert("保存成功!");
|
// alert("保存成功!");
|
||||||
$('#myModal').modal('hide');
|
$('#myModal').modal('hide');
|
||||||
$("#tip").slideDown(); //提示框
|
$("#tip").slideDown(); //提示框
|
||||||
fadeout = setTimeout(function() {
|
let fadeout = setTimeout(function() {
|
||||||
$("#tip").slideUp();
|
$("#tip").slideUp();
|
||||||
}, 2000);
|
}, 2000);
|
||||||
|
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
//点击保存任务按钮时的处理
|
//点击保存任务按钮时的处理
|
||||||
|
1
ElectronJS/tasks/52.json
Normal file
1
ElectronJS/tasks/52.json
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"id":52,"name":"新web采集任务","url":"https://www.jd.com","links":"https://www.jd.com","create_time":"5/19/2023, 2:20:14 AM","containJudge":false,"desc":"https://www.jd.com","inputParameters":[{"id":0,"name":"urlList_0","nodeId":1,"nodeName":"打开网页","value":"https://www.jd.com","desc":"要采集的网址列表,多行以\\n分开","type":"string","exampleValue":"https://www.jd.com"}],"outputParameters":[{"id":0,"name":"自定义操作2","desc":"自定义操作返回的数据","type":"string","exampleValue":""}],"graph":[{"index":0,"id":0,"parentId":0,"type":-1,"option":0,"title":"root","sequence":[1,2],"parameters":{"history":1,"tabIndex":0,"useLoop":false,"xpath":"","wait":0},"isInLoop":false},{"id":1,"index":1,"parentId":0,"type":0,"option":1,"title":"打开网页","sequence":[],"isInLoop":false,"position":0,"parameters":{"useLoop":false,"xpath":"","wait":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"url":"https://www.jd.com","links":"https://www.jd.com","scrollType":0,"scrollCount":0}},{"id":2,"index":2,"parentId":0,"type":1,"option":8,"title":"循环","sequence":[3,4],"isInLoop":false,"position":1,"parameters":{"history":1,"tabIndex":0,"useLoop":false,"xpath":"","wait":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"scrollType":0,"scrollCount":0,"loopType":"5","pathList":"","textList":"","code":"return window.innerHeight > 200","waitTime":0,"exitCount":0,"historyWait":2}},{"id":3,"index":3,"parentId":2,"type":0,"option":5,"title":"自定义操作2","sequence":[],"isInLoop":true,"position":0,"parameters":{"history":1,"tabIndex":0,"useLoop":false,"xpath":"","wait":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"codeMode":0,"code":"return window.innerHeight","waitTime":0,"recordASField":"1"}},{"id":4,"index":4,"parentId":2,"type":0,"option":5,"title":"自定义操作","sequence":[],"isInLoop":true,"position":1,"parameters":{"history":1,"tabIndex":0,"useLoop":false,"xpath":"","wait":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"codeMode":"1","code":"python D:/test.py","waitTime":0,"recordASField":"0"}}]}
|
162
ElectronJS/tasks/53.json
Normal file
162
ElectronJS/tasks/53.json
Normal file
@ -0,0 +1,162 @@
|
|||||||
|
{
|
||||||
|
"id": 53,
|
||||||
|
"name": "新web采集任务",
|
||||||
|
"url": "https://www.jd.com",
|
||||||
|
"links": "https://www.jd.com",
|
||||||
|
"create_time": "5/19/2023, 2:22:16 AM",
|
||||||
|
"containJudge": false,
|
||||||
|
"desc": "https://www.jd.com",
|
||||||
|
"inputParameters": [
|
||||||
|
{
|
||||||
|
"id": 0,
|
||||||
|
"name": "urlList_0",
|
||||||
|
"nodeId": 1,
|
||||||
|
"nodeName": "打开网页",
|
||||||
|
"value": "https://www.jd.com",
|
||||||
|
"desc": "要采集的网址列表,多行以\\n分开",
|
||||||
|
"type": "string",
|
||||||
|
"exampleValue": "https://www.jd.com"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"outputParameters": [
|
||||||
|
{
|
||||||
|
"id": 0,
|
||||||
|
"name": "自定义操作2",
|
||||||
|
"desc": "自定义操作返回的数据",
|
||||||
|
"type": "string",
|
||||||
|
"exampleValue": ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"graph": [
|
||||||
|
{
|
||||||
|
"index": 0,
|
||||||
|
"id": 0,
|
||||||
|
"parentId": 0,
|
||||||
|
"type": -1,
|
||||||
|
"option": 0,
|
||||||
|
"title": "root",
|
||||||
|
"sequence": [
|
||||||
|
1,
|
||||||
|
2
|
||||||
|
],
|
||||||
|
"parameters": {
|
||||||
|
"history": 1,
|
||||||
|
"tabIndex": 0,
|
||||||
|
"useLoop": false,
|
||||||
|
"xpath": "",
|
||||||
|
"wait": 0
|
||||||
|
},
|
||||||
|
"isInLoop": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1,
|
||||||
|
"index": 1,
|
||||||
|
"parentId": 0,
|
||||||
|
"type": 0,
|
||||||
|
"option": 1,
|
||||||
|
"title": "打开网页",
|
||||||
|
"sequence": [],
|
||||||
|
"isInLoop": false,
|
||||||
|
"position": 0,
|
||||||
|
"parameters": {
|
||||||
|
"useLoop": false,
|
||||||
|
"xpath": "",
|
||||||
|
"wait": 0,
|
||||||
|
"beforeJS": "",
|
||||||
|
"beforeJSWaitTime": 0,
|
||||||
|
"afterJS": "",
|
||||||
|
"afterJSWaitTime": 0,
|
||||||
|
"url": "https://www.jd.com",
|
||||||
|
"links": "https://www.jd.com",
|
||||||
|
"scrollType": 0,
|
||||||
|
"scrollCount": 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 2,
|
||||||
|
"index": 2,
|
||||||
|
"parentId": 0,
|
||||||
|
"type": 1,
|
||||||
|
"option": 8,
|
||||||
|
"title": "循环",
|
||||||
|
"sequence": [
|
||||||
|
3,
|
||||||
|
4
|
||||||
|
],
|
||||||
|
"isInLoop": false,
|
||||||
|
"position": 1,
|
||||||
|
"parameters": {
|
||||||
|
"history": 1,
|
||||||
|
"tabIndex": 0,
|
||||||
|
"useLoop": false,
|
||||||
|
"xpath": "",
|
||||||
|
"wait": 3,
|
||||||
|
"beforeJS": "",
|
||||||
|
"beforeJSWaitTime": 0,
|
||||||
|
"afterJS": "",
|
||||||
|
"afterJSWaitTime": 0,
|
||||||
|
"scrollType": 0,
|
||||||
|
"scrollCount": 0,
|
||||||
|
"loopType": "5",
|
||||||
|
"pathList": "",
|
||||||
|
"textList": "",
|
||||||
|
"code": "return window.innerHeight > 200",
|
||||||
|
"waitTime": 0,
|
||||||
|
"exitCount": 0,
|
||||||
|
"historyWait": 2
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 3,
|
||||||
|
"index": 3,
|
||||||
|
"parentId": 2,
|
||||||
|
"type": 0,
|
||||||
|
"option": 5,
|
||||||
|
"title": "自定义操作2",
|
||||||
|
"sequence": [],
|
||||||
|
"isInLoop": true,
|
||||||
|
"position": 0,
|
||||||
|
"parameters": {
|
||||||
|
"history": 1,
|
||||||
|
"tabIndex": 0,
|
||||||
|
"useLoop": false,
|
||||||
|
"xpath": "",
|
||||||
|
"wait": 0,
|
||||||
|
"beforeJS": "",
|
||||||
|
"beforeJSWaitTime": 0,
|
||||||
|
"afterJS": "",
|
||||||
|
"afterJSWaitTime": 0,
|
||||||
|
"codeMode": 0,
|
||||||
|
"code": "return window.innerHeight",
|
||||||
|
"waitTime": 0,
|
||||||
|
"recordASField": "1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 4,
|
||||||
|
"index": 4,
|
||||||
|
"parentId": 2,
|
||||||
|
"type": 0,
|
||||||
|
"option": 5,
|
||||||
|
"title": "自定义操作",
|
||||||
|
"sequence": [],
|
||||||
|
"isInLoop": true,
|
||||||
|
"position": 1,
|
||||||
|
"parameters": {
|
||||||
|
"history": 1,
|
||||||
|
"tabIndex": 0,
|
||||||
|
"useLoop": false,
|
||||||
|
"xpath": "",
|
||||||
|
"wait": 0,
|
||||||
|
"beforeJS": "",
|
||||||
|
"beforeJSWaitTime": 0,
|
||||||
|
"afterJS": "",
|
||||||
|
"afterJSWaitTime": 0,
|
||||||
|
"codeMode": "1",
|
||||||
|
"code": "python D:/test.py",
|
||||||
|
"waitTime": 0,
|
||||||
|
"recordASField": "0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -125,6 +125,7 @@ def execute_code(codeMode, code, max_wait_time, element=None):
|
|||||||
output = subprocess.run(code, capture_output=True, text=True, timeout=max_wait_time, encoding="utf-8")
|
output = subprocess.run(code, capture_output=True, text=True, timeout=max_wait_time, encoding="utf-8")
|
||||||
# 输出命令返回值
|
# 输出命令返回值
|
||||||
output = output.stdout
|
output = output.stdout
|
||||||
|
print(output)
|
||||||
except subprocess.TimeoutExpired:
|
except subprocess.TimeoutExpired:
|
||||||
# 命令执行时间超过5秒,抛出异常
|
# 命令执行时间超过5秒,抛出异常
|
||||||
recordLog("Command timed out")
|
recordLog("Command timed out")
|
||||||
@ -140,7 +141,7 @@ def customOperation(node, loopValue):
|
|||||||
code = paras["code"]
|
code = paras["code"]
|
||||||
max_wait_time = int(paras["waitTime"])
|
max_wait_time = int(paras["waitTime"])
|
||||||
output = execute_code(codeMode, code, max_wait_time)
|
output = execute_code(codeMode, code, max_wait_time)
|
||||||
recordASField = paras["recordASField"]
|
recordASField = int(paras["recordASField"])
|
||||||
if recordASField:
|
if recordASField:
|
||||||
global OUTPUT, outputParameters
|
global OUTPUT, outputParameters
|
||||||
outputParameters[node["title"]] = output
|
outputParameters[node["title"]] = output
|
||||||
@ -644,6 +645,8 @@ def getData(para, loopElement, isInLoop=True, parentPath="", index=0):
|
|||||||
else:
|
else:
|
||||||
element = browser.find_element(By.XPATH, p["relativeXPath"])
|
element = browser.find_element(By.XPATH, p["relativeXPath"])
|
||||||
rt.end()
|
rt.end()
|
||||||
|
else:
|
||||||
|
element = browser.find_element(By.XPATH, "//body")
|
||||||
try:
|
try:
|
||||||
execute_code(2, p["beforeJS"], p["beforeJSWaitTime"], element) # 执行前置js
|
execute_code(2, p["beforeJS"], p["beforeJSWaitTime"], element) # 执行前置js
|
||||||
if p["contentType"] == 2:
|
if p["contentType"] == 2:
|
||||||
@ -874,7 +877,7 @@ if __name__ == '__main__':
|
|||||||
"read_type": "remote",
|
"read_type": "remote",
|
||||||
"user_data": False,
|
"user_data": False,
|
||||||
"config_folder": "",
|
"config_folder": "",
|
||||||
"config_name": "config.json",
|
"config_file_name": "config.json",
|
||||||
"headless": False,
|
"headless": False,
|
||||||
}
|
}
|
||||||
c = Config(config)
|
c = Config(config)
|
||||||
@ -952,7 +955,7 @@ if __name__ == '__main__':
|
|||||||
# 3. 就算User Profile相同,chrome版本不同所存储的cookie信息也不同,也不能爬
|
# 3. 就算User Profile相同,chrome版本不同所存储的cookie信息也不同,也不能爬
|
||||||
# 4. TMALL如果一直弹出验证码,而且无法通过验证,那么需要在其他浏览器上用
|
# 4. TMALL如果一直弹出验证码,而且无法通过验证,那么需要在其他浏览器上用
|
||||||
if c.user_data:
|
if c.user_data:
|
||||||
with open(c.config_folder + c.config_name,"r", encoding='utf-8') as f:
|
with open(c.config_folder + c.config_file_name,"r", encoding='utf-8') as f:
|
||||||
config = json.load(f)
|
config = json.load(f)
|
||||||
absolute_user_data_folder = config["absolute_user_data_folder"]
|
absolute_user_data_folder = config["absolute_user_data_folder"]
|
||||||
print("\nAbsolute_user_data_folder:",absolute_user_data_folder,"\n")
|
print("\nAbsolute_user_data_folder:",absolute_user_data_folder,"\n")
|
||||||
|
37
Readme.md
37
Readme.md
@ -1,6 +1,6 @@
|
|||||||
## 请您Star/Please Star
|
## 请您Star/Please Star
|
||||||
|
|
||||||
如果你觉得此工具不错,请轻轻点击此页面右上角**Star**按钮增加项目曝光度,谢谢!
|
如果您觉得此工具不错,请轻轻点击此页面右上角**Star**按钮增加项目曝光度,谢谢!
|
||||||
|
|
||||||
If you think this tool is good, please gently click the **Star** button in the upper right corner at this page to increase the project exposure, thank you!
|
If you think this tool is good, please gently click the **Star** button in the upper right corner at this page to increase the project exposure, thank you!
|
||||||
|
|
||||||
@ -22,20 +22,6 @@ A visual code-free/no-code web crawler/spider, just select the content you want
|
|||||||
|
|
||||||
Refer to the [Releases Page](https://github.com/NaiboWang/EasySpider/releases) to download the latest version of EasySpider.
|
Refer to the [Releases Page](https://github.com/NaiboWang/EasySpider/releases) to download the latest version of EasySpider.
|
||||||
|
|
||||||
## 声明/Declaration
|
|
||||||
|
|
||||||
本软件仅供学习交流使用,**严禁使用软件进行任何违法违规的操作,如爬取不允许爬取的政府军事机关网站等**。使用本软件所造成的**一切后果由使用者自负,作者不负任何责任**。
|
|
||||||
|
|
||||||
This software is for learning and communication only. **It is strictly forbidden to use the software for any illegal operations, such as crawling government military websites that are not allowed to be crawled.** All consequences caused by the use of this software are at the user's own risk, and the author is not responsible for any consequences.
|
|
||||||
|
|
||||||
对于政府和军事机关等网站的爬虫操作,**作者将不会进行任何答疑**,以免触碰国家相关法律法规和政策。
|
|
||||||
|
|
||||||
For crawler operations on government and military websites, the author will not answer any questions to avoid touching relevant national laws, regulations and policies.
|
|
||||||
|
|
||||||
同时,软件受到专利权保护,如要用于商业用途,请联系[浙江大学天道专利事务所](media/patent.png)进行付费等操作。
|
|
||||||
|
|
||||||
At the same time, the software is protected by patent rights. If you want to use it for commercial purposes, please contact [Zhejiang University Tiandao Patent Office](media/patent.png) for payment and other operations.
|
|
||||||
|
|
||||||
## 文档/Documentation
|
## 文档/Documentation
|
||||||
|
|
||||||
请点此进入[教程文档](https://github.com/NaiboWang/EasySpider/wiki),如有英文可暂时翻译一下,或看作者的[硕士毕业论文](Docs/%E9%9D%A2%E5%90%91WEB%E5%BA%94%E7%94%A8%E7%9A%84%E6%99%BA%E8%83%BD%E5%8C%96%E6%9C%8D%E5%8A%A1%E5%B0%81%E8%A3%85%E7%B3%BB%E7%BB%9F%E8%AE%BE%E8%AE%A1%E4%B8%8E%E5%AE%9E%E7%8E%B0.pdf)(主要看第三章和第五章)。
|
请点此进入[教程文档](https://github.com/NaiboWang/EasySpider/wiki),如有英文可暂时翻译一下,或看作者的[硕士毕业论文](Docs/%E9%9D%A2%E5%90%91WEB%E5%BA%94%E7%94%A8%E7%9A%84%E6%99%BA%E8%83%BD%E5%8C%96%E6%9C%8D%E5%8A%A1%E5%B0%81%E8%A3%85%E7%B3%BB%E7%BB%9F%E8%AE%BE%E8%AE%A1%E4%B8%8E%E5%AE%9E%E7%8E%B0.pdf)(主要看第三章和第五章)。
|
||||||
@ -47,9 +33,9 @@ Documentation can be found from [Github Wiki](https://github.com/NaiboWang/EasyS
|
|||||||
|
|
||||||
Bilibili/B站视频教程:
|
Bilibili/B站视频教程:
|
||||||
|
|
||||||
[EasySpider介绍:中国地震台网采集案例](https://www.bilibili.com/video/BV1Fk4y1L7xX/)
|
[EasySpider介绍 - 中国地震台网采集案例](https://www.bilibili.com/video/BV1Fk4y1L7xX/)
|
||||||
|
|
||||||
[如何无代码可视化的爬取需要登录才能爬的网站](https://www.bilibili.com/video/BV1HV4y1r7v8)
|
[如何无代码可视化的爬取需要登录才能爬的网站 - 知乎网站案例](https://www.bilibili.com/video/BV1HV4y1r7v8)
|
||||||
|
|
||||||
[如何爬需要输入验证码的网站](https://www.bilibili.com/video/BV18c411K7FH)
|
[如何爬需要输入验证码的网站](https://www.bilibili.com/video/BV18c411K7FH)
|
||||||
|
|
||||||
@ -61,9 +47,24 @@ Bilibili/B站视频教程:
|
|||||||
|
|
||||||
Refer to [Youtube Playlist](https://youtube.com/playlist?list=PL0kEFEkWrT7mt9MUlEBV2DTo1QsaanUTp) to see the video tutorials of EasySpider.
|
Refer to [Youtube Playlist](https://youtube.com/playlist?list=PL0kEFEkWrT7mt9MUlEBV2DTo1QsaanUTp) to see the video tutorials of EasySpider.
|
||||||
|
|
||||||
|
## 声明/Declaration
|
||||||
|
|
||||||
|
本软件仅供学习交流使用,**严禁使用软件进行任何违法违规的操作,如爬取不允许爬取的政府/军事机关网站等**。使用本软件所造成的**一切后果由使用者自负**,与作者本人无关,**作者不会承担任何责任**。
|
||||||
|
|
||||||
|
This software is for learning and communication only. **It is strictly forbidden to use the software for any illegal operations, such as crawling government/military websites that are not allowed to be crawled.** All consequences caused by the use of this software are **at the user's own risk, and the author is not responsible for any consequences**.
|
||||||
|
|
||||||
|
对于政府和军事机关等网站的爬虫操作,**作者将不会进行任何答疑**,以免违反国家相关法律法规和政策。
|
||||||
|
|
||||||
|
For the crawler operations of government and military websites, **the author will not answer any questions** in order to avoid violating relevant national laws, regulations and policies.
|
||||||
|
|
||||||
|
同时,软件受到专利权保护,如要用于商业用途,请联系[浙江大学天道专利事务所](media/patent.png)进行付费等操作。
|
||||||
|
|
||||||
|
At the same time, the software is protected by patent rights. If you want to use it for commercial purposes, please contact [Zhejiang University Tiandao Patent Office](media/patent.png) for payment and other operations.
|
||||||
|
|
||||||
|
|
||||||
## 出版物/Publications
|
## 出版物/Publications
|
||||||
|
|
||||||
- This software has been accepted by The Web Conference (WWW) 2023 (中国计算机学会顶级会议 CCF A): [EasySpider: A No-Code Visual System for Crawling the Web](https://dl.acm.org/doi/abs/10.1145/3543873.3587345), March 2023.
|
- This software has been accepted by The Web Conference (WWW) 2023 (中国计算机学会顶级会议,CCF A): [EasySpider: A No-Code Visual System for Crawling the Web](https://dl.acm.org/doi/abs/10.1145/3543873.3587345), March 2023.
|
||||||
|
|
||||||
- 中国国家知识产权局发明专利,[一种自定义提取流程的服务封装系统](media/patent.png), 2022年5月。
|
- 中国国家知识产权局发明专利,[一种自定义提取流程的服务封装系统](media/patent.png), 2022年5月。
|
||||||
|
|
||||||
|
@ -1 +1 @@
|
|||||||
{"webserver_address":"http://localhost","webserver_port":8074,"user_data_folder":"./user_data","absolute_user_data_folder":"D:\\Documents\\Projects\\EasySpider\\Releases\\EasySpider_windows_amd64\\user_data"}
|
{"webserver_address":"http://localhost","webserver_port":8074,"user_data_folder":"./user_data1","absolute_user_data_folder":"D:\\Documents\\Projects\\EasySpider\\Releases\\EasySpider_windows_amd64\\user_data1"}
|
@ -1 +1 @@
|
|||||||
{"id":0,"name":"新web采集任务","url":"https://www.jd.com","links":"https://www.jd.com","containJudge":false,"desc":"https://www.jd.com","inputParameters":[{"id":0,"name":"urlList_0","nodeId":1,"nodeName":"打开网页","value":"https://www.jd.com","desc":"要采集的网址列表,多行以\\n分开","type":"string","exampleValue":"https://www.jd.com"},{"id":1,"name":"inputText_1","nodeName":"输入文字","nodeId":2,"desc":"要输入的文本,如京东搜索框输入:电脑","type":"string","exampleValue":"12","value":"12"}],"outputParameters":[{"id":0,"name":"参数1_链接文本","desc":"","type":"string","exampleValue":"大牌奥莱"},{"id":1,"name":"参数2_链接地址","desc":"","type":"string","exampleValue":"//pro.jd.com/mall/active/5pBdxPwrDx51SU6hqjdtbPxgoVC/index.html"}],"graph":[{"index":0,"id":0,"parentId":0,"type":-1,"option":0,"title":"root","sequence":[1,2,3,4],"parameters":{"history":1,"tabIndex":0,"useLoop":false,"xpath":"","wait":0},"isInLoop":false},{"id":1,"index":1,"parentId":0,"type":0,"option":1,"title":"打开网页","sequence":[],"isInLoop":false,"position":0,"parameters":{"useLoop":false,"xpath":"","wait":0,"url":"https://www.jd.com","links":"https://www.jd.com","scrollType":0,"scrollCount":0}},{"id":2,"index":2,"parentId":0,"type":0,"option":4,"title":"输入文字","sequence":[],"isInLoop":false,"position":1,"parameters":{"history":4,"tabIndex":-1,"useLoop":false,"xpath":"//*[@id=\"key\"]","wait":0,"value":"12"}},{"id":3,"index":3,"parentId":0,"type":0,"option":2,"title":"点击元素","sequence":[],"isInLoop":false,"position":2,"parameters":{"history":4,"tabIndex":-1,"useLoop":false,"xpath":"//*[@id=\"search-btn\"]/i[1]","wait":0,"scrollType":0,"scrollCount":0,"paras":[]}},{"id":4,"index":4,"parentId":0,"type":1,"option":8,"title":"循环","sequence":[5],"isInLoop":false,"position":3,"parameters":{"history":5,"tabIndex":-1,"useLoop":false,"xpath":"/html/body/div[4]/div[1]/div[3]/ul/li/a[1]","wait":0,"scrollType":0,"scrollCount":0,"loopType":1,"pathList":"","textList":"","exitCount":0,"historyWait":2}},{"id":5,"index":5,"parentId":4,"type":0,"option":3,"title":"提取数据","sequence":[],"isInLoop":true,"position":0,"parameters":{"history":5,"tabIndex":-1,"useLoop":false,"xpath":"","wait":0,"paras":[{"nodeType":1,"contentType":0,"relative":true,"name":"参数1_链接文本","desc":"","relativeXPath":"","exampleValues":[{"num":0,"value":"大牌奥莱"},{"num":1,"value":"美妆馆"},{"num":2,"value":"超市"},{"num":3,"value":"生鲜"},{"num":4,"value":"京东国际"},{"num":5,"value":"拍卖"},{"num":6,"value":"金融"},{"num":7,"value":"京东五金城"}],"default":""},{"nodeType":2,"contentType":0,"relative":true,"name":"参数2_链接地址","desc":"","relativeXPath":"","exampleValues":[{"num":0,"value":"//pro.jd.com/mall/active/5pBdxPwrDx51SU6hqjdtbPxgoVC/index.html"},{"num":1,"value":"//channel.jd.com/beautysale.html"},{"num":2,"value":"//channel.jd.com/chaoshi.html"},{"num":3,"value":"//fresh.jd.com"},{"num":4,"value":"//www.jd.hk/"},{"num":5,"value":"//paimai.jd.com/"},{"num":6,"value":"//jr.jd.com/"},{"num":7,"value":"//mro.jd.com/"}],"default":""}],"loopType":1}}]}
|
{"id":0,"name":"自定义操作示例","url":"https://www.jd.com","links":"https://www.jd.com","create_time":"5/19/2023, 1:04:24 AM","containJudge":false,"desc":"0.3.0及以上","inputParameters":[{"id":0,"name":"urlList_0","nodeId":1,"nodeName":"打开网页","value":"https://www.jd.com","desc":"要采集的网址列表,多行以\\n分开","type":"string","exampleValue":"https://www.jd.com"}],"outputParameters":[{"id":0,"name":"参数1_文本","desc":"","type":"string","exampleValue":"/手机/数码"},{"id":1,"name":"自定义操作","desc":"自定义操作返回的数据","type":"string","exampleValue":""},{"id":2,"name":"自定义操作2","desc":"自定义操作返回的数据","type":"string","exampleValue":""}],"graph":[{"index":0,"id":0,"parentId":0,"type":-1,"option":0,"title":"root","sequence":[1,2,4,5],"parameters":{"history":1,"tabIndex":0,"useLoop":false,"xpath":"","wait":0},"isInLoop":false},{"id":1,"index":1,"parentId":0,"type":0,"option":1,"title":"打开网页","sequence":[],"isInLoop":false,"position":0,"parameters":{"useLoop":false,"xpath":"","wait":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"url":"https://www.jd.com","links":"https://www.jd.com","scrollType":0,"scrollCount":0}},{"id":2,"index":2,"parentId":0,"type":1,"option":8,"title":"循环","sequence":[3],"isInLoop":false,"position":1,"parameters":{"history":4,"tabIndex":-1,"useLoop":false,"xpath":"/html/body/div[5]/div[1]/div[1]/div[1]/div[1]/div[1]/div[1]/div[1]/div[1]/div","wait":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"scrollType":0,"scrollCount":0,"loopType":1,"pathList":"","textList":"","code":"","waitTime":0,"exitCount":0,"historyWait":2,"allXPaths":["/html/body/div[5]/div[1]/div[1]/div[1]/div[1]/div[1]/div[1]/div[1]/div[1]/div[1]","//div[contains(., '/手机/数码')]","//DIV[@class='LeftSide_menu_item__SBMWC LeftSide_text_space__2UhbG ']"]}},{"id":5,"index":3,"parentId":2,"type":0,"option":3,"title":"提取数据","sequence":[],"isInLoop":true,"position":0,"parameters":{"history":4,"tabIndex":-1,"useLoop":false,"xpath":"","wait":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"paras":[{"nodeType":0,"contentType":9,"relative":true,"name":"参数1_文本","desc":"","extractType":0,"relativeXPath":"","allXPaths":"","exampleValues":[{"num":0,"value":"/手机/数码"},{"num":1,"value":"/家用电器"},{"num":2,"value":"/电脑/办公"},{"num":3,"value":"/家纺/家居/厨具"},{"num":4,"value":"/家具/家装/灯具/工业品"},{"num":5,"value":"/内衣/男装/女装/童装"},{"num":6,"value":"/箱包/钟表/珠宝/女鞋"},{"num":7,"value":"/运动/户外/男鞋"},{"num":8,"value":"/汽车用品/车载电器"},{"num":9,"value":"/母婴/洗护喂养"},{"num":10,"value":"/玩具乐器/宠物生活"},{"num":11,"value":"/家庭清洁/个人护理/计生情趣"},{"num":12,"value":"/图书/童书/文学"}],"default":"","beforeJS":"arguments[0].innerText = arguments[0].innerText + \"类别\"","beforeJSWaitTime":0,"JS":"return arguments[0].innerText.replace(\"女\", \"Girl\")","JSWaitTime":0,"afterJS":"arguments[0].innerText = \"类别2\" + arguments[0].innerText","afterJSWaitTime":0}],"loopType":1}},{"id":3,"index":4,"parentId":0,"type":0,"option":5,"title":"自定义操作","sequence":[],"isInLoop":false,"position":2,"parameters":{"history":1,"tabIndex":0,"useLoop":false,"xpath":"","wait":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"codeMode":0,"code":"return window.innerHeight","waitTime":0,"recordASField":true}},{"id":4,"index":5,"parentId":0,"type":0,"option":5,"title":"自定义操作2","sequence":[],"isInLoop":false,"position":3,"parameters":{"history":1,"tabIndex":0,"useLoop":false,"xpath":"","wait":20,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"codeMode":"1","code":"python D:/test.py","waitTime":0,"recordASField":true}}]}
|
@ -1 +0,0 @@
|
|||||||
{"id":1,"name":"新web采集任务","url":"https://www.jd.com","links":"https://www.jd.com","containJudge":false,"desc":"https://www.jd.com","inputParameters":[{"id":0,"name":"urlList_0","nodeId":1,"nodeName":"打开网页","value":"https://www.jd.com","desc":"要采集的网址列表,多行以\\n分开","type":"string","exampleValue":"https://www.jd.com"},{"id":1,"name":"inputText_1","nodeName":"输入文字","nodeId":2,"desc":"要输入的文本,如京东搜索框输入:电脑","type":"string","exampleValue":"123","value":"123"}],"outputParameters":[{"id":0,"name":"参数1_链接文本","desc":"","type":"string","exampleValue":"大牌奥莱"},{"id":1,"name":"参数2_链接地址","desc":"","type":"string","exampleValue":"//pro.jd.com/mall/active/5pBdxPwrDx51SU6hqjdtbPxgoVC/index.html"}],"graph":[{"index":0,"id":0,"parentId":0,"type":-1,"option":0,"title":"root","sequence":[1,2,3,4],"parameters":{"history":1,"tabIndex":0,"useLoop":false,"xpath":"","wait":0},"isInLoop":false},{"id":1,"index":1,"parentId":0,"type":0,"option":1,"title":"打开网页","sequence":[],"isInLoop":false,"position":0,"parameters":{"useLoop":false,"xpath":"","wait":0,"url":"https://www.jd.com","links":"https://www.jd.com","scrollType":0,"scrollCount":0}},{"id":2,"index":2,"parentId":0,"type":0,"option":4,"title":"输入文字","sequence":[],"isInLoop":false,"position":1,"parameters":{"history":4,"tabIndex":-1,"useLoop":false,"xpath":"//*[@id=\"key\"]","wait":5,"value":"123"}},{"id":3,"index":3,"parentId":0,"type":0,"option":2,"title":"点击元素","sequence":[],"isInLoop":false,"position":2,"parameters":{"history":4,"tabIndex":-1,"useLoop":false,"xpath":"//*[@id=\"search-btn\"]/i[1]","wait":0,"scrollType":0,"scrollCount":0,"paras":[]}},{"id":4,"index":4,"parentId":0,"type":1,"option":8,"title":"循环","sequence":[5],"isInLoop":false,"position":3,"parameters":{"history":5,"tabIndex":-1,"useLoop":false,"xpath":"/html/body/div[4]/div[1]/div[3]/ul[1]/li/a[1]","wait":0,"scrollType":0,"scrollCount":0,"loopType":1,"pathList":"","textList":"","exitCount":0,"historyWait":2}},{"id":5,"index":5,"parentId":4,"type":0,"option":3,"title":"提取数据","sequence":[],"isInLoop":true,"position":0,"parameters":{"history":5,"tabIndex":-1,"useLoop":false,"xpath":"","wait":0,"paras":[{"nodeType":1,"contentType":0,"relative":true,"name":"参数1_链接文本","desc":"","relativeXPath":"","exampleValues":[{"num":0,"value":"大牌奥莱"},{"num":1,"value":"美妆馆"},{"num":2,"value":"超市"},{"num":3,"value":"生鲜"}],"default":""},{"nodeType":2,"contentType":0,"relative":true,"name":"参数2_链接地址","desc":"","relativeXPath":"","exampleValues":[{"num":0,"value":"//pro.jd.com/mall/active/5pBdxPwrDx51SU6hqjdtbPxgoVC/index.html"},{"num":1,"value":"//channel.jd.com/beautysale.html"},{"num":2,"value":"//channel.jd.com/chaoshi.html"},{"num":3,"value":"//fresh.jd.com"}],"default":""}],"loopType":1}}]}
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1 +0,0 @@
|
|||||||
{"id": 20, "name": "Bilibili\u7c89\u4e1d", "url": "https://space.bilibili.com/291929894/fans/fans", "links": "https://space.bilibili.com/291929894/fans/fans", "containJudge": false, "desc": "https://space.bilibili.com/291929894/fans/fans", "inputParameters": [{"id": 0, "name": "urlList_0", "nodeId": 1, "nodeName": "Open Page", "value": "https://space.bilibili.com/291929894/fans/fans", "desc": "List of URLs to be collected, separated by \\n for multiple lines", "type": "string", "exampleValue": "https://space.bilibili.com/291929894/fans/fans"}, {"id": 1, "name": "loopTimes_Loop_1", "nodeId": 2, "nodeName": "Loop", "desc": "Number of loop executions, 0 means unlimited loops (until element not found)", "type": "int", "exampleValue": 0, "value": 0}], "outputParameters": [{"id": 0, "name": "\u53c2\u65701_\u6587\u672c", "desc": "", "type": "string", "exampleValue": "\u5bf9\u65b9\u7b54\u590d5"}], "graph": [{"index": 0, "id": 0, "parentId": 0, "type": -1, "option": 0, "title": "root", "sequence": [1, 2], "parameters": {"history": 1, "tabIndex": 0, "useLoop": false, "xpath": "", "wait": 0}, "isInLoop": false}, {"id": 1, "index": 1, "parentId": 0, "type": 0, "option": 1, "title": "Open Page", "sequence": [], "isInLoop": false, "position": 0, "parameters": {"useLoop": false, "xpath": "", "wait": 0, "url": "https://space.bilibili.com/291929894/fans/fans", "links": "https://space.bilibili.com/291929894/fans/fans", "scrollType": 0, "scrollCount": 0}}, {"id": 2, "index": 2, "parentId": 0, "type": 1, "option": 8, "title": "Loop", "sequence": [4], "isInLoop": false, "position": 1, "parameters": {"history": 4, "tabIndex": -1, "useLoop": false, "xpath": "//a[contains(text(),\"\u4e0b\u4e00\u9875\")]", "wait": 0, "scrollType": 0, "scrollCount": 0, "loopType": 0, "pathList": "", "textList": "", "exitCount": 0, "historyWait": 2}}, {"id": -1, "index": 3, "parentId": 2, "type": 0, "option": 2, "title": "Click Element", "sequence": [], "isInLoop": true, "position": 1, "parameters": {"history": 4, "tabIndex": -1, "useLoop": true, "xpath": "//*[@id=\"page-follows\"]/div[1]/div[2]/div[2]/div[2]/ul[2]/li[7]", "wait": 1, "scrollType": 0, "scrollCount": 0, "paras": [], "loopType": 0}}, {"id": 3, "index": 4, "parentId": 2, "type": 1, "option": 8, "title": "Loop", "sequence": [5], "isInLoop": true, "position": 0, "parameters": {"history": 4, "tabIndex": -1, "useLoop": false, "xpath": "/html/body/div[2]/div[4]/div[1]/div[1]/div[1]/div[2]/div[2]/div[2]/ul[1]/li/div[2]/a[1]/span[1]", "wait": 0, "scrollType": 0, "scrollCount": 0, "loopType": 1, "pathList": "", "textList": "", "exitCount": 0, "historyWait": 2}}, {"id": 4, "index": 5, "parentId": 3, "type": 0, "option": 3, "title": "Extract Data", "sequence": [], "isInLoop": true, "position": 0, "parameters": {"history": 4, "tabIndex": -1, "useLoop": false, "xpath": "", "wait": 0, "paras": [{"nodeType": 0, "contentType": 0, "relative": true, "name": "\u53c2\u65701_\u6587\u672c", "desc": "", "relativeXPath": "", "exampleValues": [{"num": 0, "value": "\u5bf9\u65b9\u7b54\u590d5"}], "default": ""}], "loopType": 1}}]}
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1 +0,0 @@
|
|||||||
{"id":32,"name":"知乎_登录后采集","url":"https://www.zhihu.com","links":"https://www.zhihu.com","containJudge":false,"desc":"https://www.zhihu.com\n使用带用户配置的浏览器模式来先手工登录后保存信息,再接着执行。","inputParameters":[{"id":0,"name":"urlList_0","nodeId":1,"nodeName":"打开网页","value":"https://www.zhihu.com","desc":"要采集的网址列表,多行以\\n分开","type":"string","exampleValue":"https://www.zhihu.com"}],"outputParameters":[{"id":0,"name":"参数1_文本","desc":"","type":"string","exampleValue":"历史上有哪些通过“正当手段”干出不正当事的人物?"}],"graph":[{"index":0,"id":0,"parentId":0,"type":-1,"option":0,"title":"root","sequence":[1,2],"parameters":{"history":1,"tabIndex":0,"useLoop":false,"xpath":"","wait":0},"isInLoop":false},{"id":1,"index":1,"parentId":0,"type":0,"option":1,"title":"打开网页","sequence":[],"isInLoop":false,"position":0,"parameters":{"useLoop":false,"xpath":"","wait":0,"url":"https://www.zhihu.com","links":"https://www.zhihu.com","scrollType":0,"scrollCount":0}},{"id":2,"index":2,"parentId":0,"type":1,"option":8,"title":"循环","sequence":[3],"isInLoop":false,"position":1,"parameters":{"history":5,"tabIndex":-1,"useLoop":false,"xpath":"","wait":0,"scrollType":0,"scrollCount":0,"loopType":2,"pathList":"//*[contains(@class, \"css-0\")]/div[2]/div[1]/div[1]/div[1]/h2[1]/div[1]\n//*[contains(@class, \"css-0\")]/div[3]/div[1]/div[1]/div[1]/h2[1]/div[1]\n//*[contains(@class, \"css-0\")]/div[4]/div[1]/div[1]/div[1]/h2[1]/div[1]\n//*[contains(@class, \"css-0\")]/div[5]/div[1]/div[1]/div[1]/h2[1]/div[1]\n//*[contains(@class, \"css-0\")]/div[6]/div[1]/div[1]/div[1]/h2[1]/div[1]\n//*[contains(@class, \"css-0\")]/div[7]/div[1]/div[1]/div[1]/h2[1]/div[1]\n//*[contains(@class, \"css-0\")]/div[8]/div[1]/div[1]/div[1]/h2[1]/div[1]\n//*[contains(@class, \"css-0\")]/div[9]/div[1]/div[1]/div[1]/h2[1]/div[1]\n//*[contains(@class, \"css-0\")]/div[10]/div[1]/div[1]/div[1]/h2[1]/div[1]\n//*[contains(@class, \"css-0\")]/div[11]/div[1]/div[1]/div[1]/h2[1]/div[1]\n//*[contains(@class, \"css-0\")]/div[12]/div[1]/div[1]/div[1]/h2[1]/div[1]\n//*[contains(@class, \"css-0\")]/div[13]/div[1]/div[1]/div[1]/h2[1]/div[1]","textList":"","exitCount":0,"historyWait":2}},{"id":3,"index":3,"parentId":2,"type":0,"option":3,"title":"提取数据","sequence":[],"isInLoop":true,"position":0,"parameters":{"history":5,"tabIndex":-1,"useLoop":false,"xpath":"","wait":0,"paras":[{"nodeType":0,"contentType":0,"relative":true,"name":"参数1_文本","desc":"","relativeXPath":"","exampleValues":[{"num":0,"value":"历史上有哪些通过“正当手段”干出不正当事的人物?"},{"num":1,"value":"新加坡有哪些不好的地方?"},{"num":2,"value":"孙悟空可以秒杀山村老尸那样的厉鬼吗?"},{"num":3,"value":"为什么渐渐厌倦玩《原神》了?"},{"num":4,"value":"历史上有哪些著名的考古乌龙事件?"},{"num":5,"value":"苹果公司为什么能把用户调教得这么好?"},{"num":6,"value":"哪个瞬间让你发现了世界的bug?"},{"num":7,"value":"假如中国的院士,想为亲属谋体制内的工作,难度大吗?为什么?"},{"num":8,"value":"你一直珍藏的视频是哪个?"},{"num":9,"value":"如何评价《原神》角色艾莉丝?"},{"num":10,"value":"索罗斯如何做空的英镑、泰铢?为什么做空香港失败了?"},{"num":11,"value":"如何在婚前认清并杜绝王力宏这种男人?"}],"default":""}],"loopType":2}}]}
|
|
File diff suppressed because one or more lines are too long
@ -1 +0,0 @@
|
|||||||
{"id":34,"name":"新web采集任务","url":"https://www.jd.com","links":"https://www.jd.com","containJudge":false,"desc":"https://www.jd.com","inputParameters":[{"id":0,"name":"urlList_0","nodeId":1,"nodeName":"打开网页","value":"https://www.jd.com","desc":"要采集的网址列表,多行以\\n分开","type":"string","exampleValue":"https://www.jd.com"},{"id":1,"name":"inputText_1","nodeName":"输入文字","nodeId":2,"desc":"要输入的文本,如京东搜索框输入:电脑","type":"string","exampleValue":"12","value":"12"}],"outputParameters":[{"id":0,"name":"参数1_链接文本","desc":"","type":"string","exampleValue":"大牌奥莱"},{"id":1,"name":"参数2_链接地址","desc":"","type":"string","exampleValue":"//pro.jd.com/mall/active/5pBdxPwrDx51SU6hqjdtbPxgoVC/index.html"}],"graph":[{"index":0,"id":0,"parentId":0,"type":-1,"option":0,"title":"root","sequence":[1,2,3,4],"parameters":{"history":1,"tabIndex":0,"useLoop":false,"xpath":"","wait":0},"isInLoop":false},{"id":1,"index":1,"parentId":0,"type":0,"option":1,"title":"打开网页","sequence":[],"isInLoop":false,"position":0,"parameters":{"useLoop":false,"xpath":"","wait":0,"url":"https://www.jd.com","links":"https://www.jd.com","scrollType":0,"scrollCount":0}},{"id":2,"index":2,"parentId":0,"type":0,"option":4,"title":"输入文字","sequence":[],"isInLoop":false,"position":1,"parameters":{"history":4,"tabIndex":-1,"useLoop":false,"xpath":"//*[@id=\"key\"]","wait":0,"value":"12"}},{"id":3,"index":3,"parentId":0,"type":0,"option":2,"title":"点击元素","sequence":[],"isInLoop":false,"position":2,"parameters":{"history":4,"tabIndex":-1,"useLoop":false,"xpath":"//*[@id=\"search-btn\"]/i[1]","wait":0,"scrollType":0,"scrollCount":0,"paras":[]}},{"id":4,"index":4,"parentId":0,"type":1,"option":8,"title":"循环","sequence":[5],"isInLoop":false,"position":3,"parameters":{"history":5,"tabIndex":-1,"useLoop":false,"xpath":"/html/body/div[4]/div[1]/div[3]/ul/li/a[1]","wait":0,"scrollType":0,"scrollCount":0,"loopType":1,"pathList":"","textList":"","exitCount":0,"historyWait":2}},{"id":5,"index":5,"parentId":4,"type":0,"option":3,"title":"提取数据","sequence":[],"isInLoop":true,"position":0,"parameters":{"history":5,"tabIndex":-1,"useLoop":false,"xpath":"","wait":0,"paras":[{"nodeType":1,"contentType":0,"relative":true,"name":"参数1_链接文本","desc":"","relativeXPath":"","exampleValues":[{"num":0,"value":"大牌奥莱"},{"num":1,"value":"美妆馆"},{"num":2,"value":"超市"},{"num":3,"value":"生鲜"},{"num":4,"value":"京东国际"},{"num":5,"value":"拍卖"},{"num":6,"value":"金融"},{"num":7,"value":"京东五金城"}],"default":""},{"nodeType":2,"contentType":0,"relative":true,"name":"参数2_链接地址","desc":"","relativeXPath":"","exampleValues":[{"num":0,"value":"//pro.jd.com/mall/active/5pBdxPwrDx51SU6hqjdtbPxgoVC/index.html"},{"num":1,"value":"//channel.jd.com/beautysale.html"},{"num":2,"value":"//channel.jd.com/chaoshi.html"},{"num":3,"value":"//fresh.jd.com"},{"num":4,"value":"//www.jd.hk/"},{"num":5,"value":"//paimai.jd.com/"},{"num":6,"value":"//jr.jd.com/"},{"num":7,"value":"//mro.jd.com/"}],"default":""}],"loopType":1}}]}
|
|
@ -1 +0,0 @@
|
|||||||
{"id":35,"name":"新web采集任务","url":"https://www.jd.com","links":"https://www.jd.com","containJudge":false,"desc":"https://www.jd.com","inputParameters":[{"id":0,"name":"urlList_0","nodeId":1,"nodeName":"打开网页","value":"https://www.jd.com","desc":"要采集的网址列表,多行以\\n分开","type":"string","exampleValue":"https://www.jd.com"},{"id":1,"name":"inputText_1","nodeName":"输入文字","nodeId":2,"desc":"要输入的文本,如京东搜索框输入:电脑","type":"string","exampleValue":"123","value":"123"}],"outputParameters":[{"id":0,"name":"参数1_链接文本","desc":"","type":"string","exampleValue":"大牌奥莱"},{"id":1,"name":"参数2_链接地址","desc":"","type":"string","exampleValue":"//pro.jd.com/mall/active/5pBdxPwrDx51SU6hqjdtbPxgoVC/index.html"}],"graph":[{"index":0,"id":0,"parentId":0,"type":-1,"option":0,"title":"root","sequence":[1,2,3,4],"parameters":{"history":1,"tabIndex":0,"useLoop":false,"xpath":"","wait":0},"isInLoop":false},{"id":1,"index":1,"parentId":0,"type":0,"option":1,"title":"打开网页","sequence":[],"isInLoop":false,"position":0,"parameters":{"useLoop":false,"xpath":"","wait":0,"url":"https://www.jd.com","links":"https://www.jd.com","scrollType":0,"scrollCount":0}},{"id":2,"index":2,"parentId":0,"type":0,"option":4,"title":"输入文字","sequence":[],"isInLoop":false,"position":1,"parameters":{"history":4,"tabIndex":-1,"useLoop":false,"xpath":"//*[@id=\"key\"]","wait":5,"value":"123"}},{"id":3,"index":3,"parentId":0,"type":0,"option":2,"title":"点击元素","sequence":[],"isInLoop":false,"position":2,"parameters":{"history":4,"tabIndex":-1,"useLoop":false,"xpath":"//*[@id=\"search-btn\"]/i[1]","wait":0,"scrollType":0,"scrollCount":0,"paras":[]}},{"id":4,"index":4,"parentId":0,"type":1,"option":8,"title":"循环","sequence":[5],"isInLoop":false,"position":3,"parameters":{"history":5,"tabIndex":-1,"useLoop":false,"xpath":"/html/body/div[4]/div[1]/div[3]/ul[1]/li/a[1]","wait":0,"scrollType":0,"scrollCount":0,"loopType":1,"pathList":"","textList":"","exitCount":0,"historyWait":2}},{"id":5,"index":5,"parentId":4,"type":0,"option":3,"title":"提取数据","sequence":[],"isInLoop":true,"position":0,"parameters":{"history":5,"tabIndex":-1,"useLoop":false,"xpath":"","wait":0,"paras":[{"nodeType":1,"contentType":0,"relative":true,"name":"参数1_链接文本","desc":"","relativeXPath":"","exampleValues":[{"num":0,"value":"大牌奥莱"},{"num":1,"value":"美妆馆"},{"num":2,"value":"超市"},{"num":3,"value":"生鲜"}],"default":""},{"nodeType":2,"contentType":0,"relative":true,"name":"参数2_链接地址","desc":"","relativeXPath":"","exampleValues":[{"num":0,"value":"//pro.jd.com/mall/active/5pBdxPwrDx51SU6hqjdtbPxgoVC/index.html"},{"num":1,"value":"//channel.jd.com/beautysale.html"},{"num":2,"value":"//channel.jd.com/chaoshi.html"},{"num":3,"value":"//fresh.jd.com"}],"default":""}],"loopType":1}}]}
|
|
1
Releases/EasySpider_windows_amd64/tasks/36.json
Normal file
1
Releases/EasySpider_windows_amd64/tasks/36.json
Normal file
File diff suppressed because one or more lines are too long
1
Releases/EasySpider_windows_amd64/tasks/37.json
Normal file
1
Releases/EasySpider_windows_amd64/tasks/37.json
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"id":37,"name":"元素截图测试","url":"https://www.jd.com","links":"https://www.jd.com","containJudge":false,"desc":"https://www.jd.com","inputParameters":[{"id":0,"name":"urlList_0","nodeId":1,"nodeName":"打开网页","value":"https://www.jd.com","desc":"要采集的网址列表,多行以\\n分开","type":"string","exampleValue":"https://www.jd.com"}],"outputParameters":[{"id":0,"name":"参数1_文本","desc":"","type":"string","exampleValue":"/手机/数码"}],"graph":[{"index":0,"id":0,"parentId":0,"type":-1,"option":0,"title":"root","sequence":[1,2],"parameters":{"history":1,"tabIndex":0,"useLoop":false,"xpath":"","wait":0},"isInLoop":false},{"id":1,"index":1,"parentId":0,"type":0,"option":1,"title":"打开网页","sequence":[],"isInLoop":false,"position":0,"parameters":{"useLoop":false,"xpath":"","wait":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"url":"https://www.jd.com","links":"https://www.jd.com","scrollType":0,"scrollCount":0}},{"id":2,"index":2,"parentId":0,"type":1,"option":8,"title":"循环","sequence":[3],"isInLoop":false,"position":1,"parameters":{"history":4,"tabIndex":-1,"useLoop":false,"xpath":"/html/body/div[5]/div[1]/div[1]/div[1]/div[1]/div[1]/div[1]/div[1]/div[1]/div","wait":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"scrollType":0,"scrollCount":0,"loopType":1,"pathList":"","textList":"","code":"","waitTime":0,"exitCount":0,"historyWait":2,"allXPaths":["/html/body/div[5]/div[1]/div[1]/div[1]/div[1]/div[1]/div[1]/div[1]/div[1]/div[1]","//div[contains(., '/手机/数码')]","//DIV[@class='LeftSide_menu_item__SBMWC LeftSide_text_space__2UhbG ']"]}},{"id":3,"index":3,"parentId":2,"type":0,"option":3,"title":"提取数据","sequence":[],"isInLoop":true,"position":0,"parameters":{"history":4,"tabIndex":-1,"useLoop":false,"xpath":"","wait":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"paras":[{"nodeType":0,"contentType":7,"relative":true,"name":"参数1_文本","desc":"","extractType":0,"relativeXPath":"","allXPaths":"","exampleValues":[{"num":0,"value":"/手机/数码"},{"num":1,"value":"/家用电器"},{"num":2,"value":"/电脑/办公"},{"num":3,"value":"/家纺/家居/厨具"},{"num":4,"value":"/家具/家装/灯具/工业品"},{"num":5,"value":"/内衣/男装/女装/童装"},{"num":6,"value":"/箱包/钟表/珠宝/女鞋"},{"num":7,"value":"/运动/户外/男鞋"},{"num":8,"value":"/汽车用品/车载电器"},{"num":9,"value":"/母婴/洗护喂养"},{"num":10,"value":"/玩具乐器/宠物生活"},{"num":11,"value":"/家庭清洁/个人护理/计生情趣"},{"num":12,"value":"/图书/童书/文学"}],"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0}],"loopType":1}}]}
|
1
Releases/EasySpider_windows_amd64/tasks/38.json
Normal file
1
Releases/EasySpider_windows_amd64/tasks/38.json
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"id":38,"name":"百度文库","url":"https://wenku.baidu.com/view/d49e7403c181e53a580216fc700abb68a982adbf?_wkts_=1684423170373","links":"https://wenku.baidu.com/view/d49e7403c181e53a580216fc700abb68a982adbf?_wkts_=1684423170373","containJudge":false,"desc":"https://wenku.baidu.com/view/d49e7403c181e53a580216fc700abb68a982adbf?_wkts_=1684423170373","inputParameters":[{"id":0,"name":"urlList_0","nodeId":1,"nodeName":"打开网页","value":"https://wenku.baidu.com/view/d49e7403c181e53a580216fc700abb68a982adbf?_wkts_=1684423170373","desc":"要采集的网址列表,多行以\\n分开","type":"string","exampleValue":"https://wenku.baidu.com/view/d49e7403c181e53a580216fc700abb68a982adbf?_wkts_=1684423170373"}],"outputParameters":[{"id":0,"name":"参数1_文本","desc":"","type":"string","exampleValue":""},{"id":1,"name":"参数2_文本","desc":"","type":"string","exampleValue":""}],"graph":[{"index":0,"id":0,"parentId":0,"type":-1,"option":0,"title":"root","sequence":[1,2],"parameters":{"history":1,"tabIndex":0,"useLoop":false,"xpath":"","wait":0},"isInLoop":false},{"id":1,"index":1,"parentId":0,"type":0,"option":1,"title":"打开网页","sequence":[],"isInLoop":false,"position":0,"parameters":{"useLoop":false,"xpath":"","wait":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"url":"https://wenku.baidu.com/view/d49e7403c181e53a580216fc700abb68a982adbf?_wkts_=1684423170373","links":"https://wenku.baidu.com/view/d49e7403c181e53a580216fc700abb68a982adbf?_wkts_=1684423170373","scrollType":0,"scrollCount":0}},{"id":2,"index":2,"parentId":0,"type":1,"option":8,"title":"循环","sequence":[3],"isInLoop":false,"position":1,"parameters":{"history":5,"tabIndex":0,"useLoop":false,"xpath":"//canvas","wait":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"scrollType":0,"scrollCount":0,"loopType":1,"pathList":"","textList":"","code":"","waitTime":0,"exitCount":0,"historyWait":2,"allXPaths":["/html/body/div[1]/div[2]/div[2]/div[4]/div[1]/div[1]/div[3]/div[2]/div[1]/canvas[1]","//canvas[contains(., '')]","id(\"original-creader-canvas-1\")","//CANVAS[@class='creader-canvas']"]}},{"id":3,"index":3,"parentId":2,"type":0,"option":3,"title":"提取数据","sequence":[],"isInLoop":true,"position":0,"parameters":{"history":5,"tabIndex":0,"useLoop":false,"xpath":"","wait":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"paras":[{"nodeType":0,"contentType":7,"relative":true,"name":"参数1_文本","desc":"","extractType":0,"relativeXPath":"","allXPaths":"","exampleValues":[{"num":0,"value":""},{"num":1,"value":""}],"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0},{"nodeType":0,"contentType":8,"relative":true,"name":"参数2_文本","desc":"","extractType":0,"relativeXPath":"","allXPaths":["/html/body/div[1]/div[2]/div[2]/div[4]/div[1]/div[1]/div[3]/div[2]/div[1]/canvas[1]","//canvas[contains(., '')]","id(\"original-creader-canvas-1\")","//CANVAS[@class='creader-canvas']"],"exampleValues":[{"num":0,"value":""}],"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0}],"loopType":1}}]}
|
1
Releases/EasySpider_windows_amd64/tasks/39.json
Normal file
1
Releases/EasySpider_windows_amd64/tasks/39.json
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
197
Releases/EasySpider_windows_amd64/tasks/40.json
Normal file
197
Releases/EasySpider_windows_amd64/tasks/40.json
Normal file
@ -0,0 +1,197 @@
|
|||||||
|
{
|
||||||
|
"id": 40,
|
||||||
|
"name": "命令测试",
|
||||||
|
"url": "https://www.jd.com",
|
||||||
|
"links": "https://www.jd.com",
|
||||||
|
"containJudge": false,
|
||||||
|
"desc": "https://www.jd.com",
|
||||||
|
"inputParameters": [
|
||||||
|
{
|
||||||
|
"id": 0,
|
||||||
|
"name": "urlList_0",
|
||||||
|
"nodeId": 1,
|
||||||
|
"nodeName": "打开网页",
|
||||||
|
"value": "https://www.jd.com",
|
||||||
|
"desc": "要采集的网址列表,多行以\\n分开",
|
||||||
|
"type": "string",
|
||||||
|
"exampleValue": "https://www.jd.com"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1,
|
||||||
|
"name": "inputText_1",
|
||||||
|
"nodeName": "输入文字",
|
||||||
|
"nodeId": 2,
|
||||||
|
"desc": "要输入的文本,如京东搜索框输入:电脑",
|
||||||
|
"type": "string",
|
||||||
|
"exampleValue": "123",
|
||||||
|
"value": "123"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"outputParameters": [
|
||||||
|
{
|
||||||
|
"id": 0,
|
||||||
|
"name": "参数1_文本",
|
||||||
|
"desc": "",
|
||||||
|
"type": "string",
|
||||||
|
"exampleValue": "领券中心今日推荐"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"graph": [
|
||||||
|
{
|
||||||
|
"index": 0,
|
||||||
|
"id": 0,
|
||||||
|
"parentId": 0,
|
||||||
|
"type": -1,
|
||||||
|
"option": 0,
|
||||||
|
"title": "root",
|
||||||
|
"sequence": [
|
||||||
|
1,
|
||||||
|
2,
|
||||||
|
3,
|
||||||
|
4
|
||||||
|
],
|
||||||
|
"parameters": {
|
||||||
|
"history": 1,
|
||||||
|
"tabIndex": 0,
|
||||||
|
"useLoop": false,
|
||||||
|
"xpath": "",
|
||||||
|
"wait": 0
|
||||||
|
},
|
||||||
|
"isInLoop": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1,
|
||||||
|
"index": 1,
|
||||||
|
"parentId": 0,
|
||||||
|
"type": 0,
|
||||||
|
"option": 1,
|
||||||
|
"title": "打开网页",
|
||||||
|
"sequence": [],
|
||||||
|
"isInLoop": false,
|
||||||
|
"position": 0,
|
||||||
|
"parameters": {
|
||||||
|
"useLoop": false,
|
||||||
|
"xpath": "",
|
||||||
|
"wait": 0,
|
||||||
|
"beforeJS": "",
|
||||||
|
"beforeJSWaitTime": 0,
|
||||||
|
"afterJS": "",
|
||||||
|
"afterJSWaitTime": 0,
|
||||||
|
"url": "https://www.jd.com",
|
||||||
|
"links": "https://www.jd.com",
|
||||||
|
"scrollType": 0,
|
||||||
|
"scrollCount": 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 2,
|
||||||
|
"index": 2,
|
||||||
|
"parentId": 0,
|
||||||
|
"type": 0,
|
||||||
|
"option": 4,
|
||||||
|
"title": "输入文字",
|
||||||
|
"sequence": [],
|
||||||
|
"isInLoop": false,
|
||||||
|
"position": 1,
|
||||||
|
"parameters": {
|
||||||
|
"history": 4,
|
||||||
|
"tabIndex": -1,
|
||||||
|
"useLoop": false,
|
||||||
|
"xpath": "//*[@id=\"key\"]",
|
||||||
|
"wait": 0,
|
||||||
|
"beforeJS": "arguments[0].value = \"手机\"",
|
||||||
|
"beforeJSWaitTime": 0,
|
||||||
|
"afterJS": "arguments[0].value = arguments[0].value + \"价格\"",
|
||||||
|
"afterJSWaitTime": 0,
|
||||||
|
"value": "123",
|
||||||
|
"allXPaths": [
|
||||||
|
"/html/body/div[4]/div[1]/div[2]/div[1]/input[1]",
|
||||||
|
"//input[contains(., '')]",
|
||||||
|
"id(\"key\")",
|
||||||
|
"//INPUT[@class='text defcolor']"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 3,
|
||||||
|
"index": 3,
|
||||||
|
"parentId": 0,
|
||||||
|
"type": 0,
|
||||||
|
"option": 2,
|
||||||
|
"title": "点击元素",
|
||||||
|
"sequence": [],
|
||||||
|
"isInLoop": false,
|
||||||
|
"position": 2,
|
||||||
|
"parameters": {
|
||||||
|
"history": 4,
|
||||||
|
"tabIndex": -1,
|
||||||
|
"useLoop": false,
|
||||||
|
"xpath": "//*[contains(@class, \"welcome\")]",
|
||||||
|
"wait": 0,
|
||||||
|
"beforeJS": "arguments[0].innerText = arguments[0].innerText + \"淘宝\"",
|
||||||
|
"beforeJSWaitTime": 0,
|
||||||
|
"afterJS": "arguments[0].innerText = arguments[0].innerText + \"天猫\"",
|
||||||
|
"afterJSWaitTime": 0,
|
||||||
|
"scrollType": 0,
|
||||||
|
"scrollCount": 0,
|
||||||
|
"paras": [],
|
||||||
|
"allXPaths": [
|
||||||
|
"/html/body/div[5]/div[1]/div[1]/div[1]/div[3]/div[1]/div[1]/div[2]/div[1]",
|
||||||
|
"//div[contains(., 'HI~欢迎来到京东!')]",
|
||||||
|
"//DIV[@class='welcome']"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 4,
|
||||||
|
"index": 4,
|
||||||
|
"parentId": 0,
|
||||||
|
"type": 0,
|
||||||
|
"option": 3,
|
||||||
|
"title": "提取数据",
|
||||||
|
"sequence": [],
|
||||||
|
"isInLoop": false,
|
||||||
|
"position": 3,
|
||||||
|
"parameters": {
|
||||||
|
"history": 4,
|
||||||
|
"tabIndex": -1,
|
||||||
|
"useLoop": false,
|
||||||
|
"xpath": "",
|
||||||
|
"wait": 0,
|
||||||
|
"beforeJS": "",
|
||||||
|
"beforeJSWaitTime": 0,
|
||||||
|
"afterJS": "",
|
||||||
|
"afterJSWaitTime": 0,
|
||||||
|
"paras": [
|
||||||
|
{
|
||||||
|
"nodeType": 0,
|
||||||
|
"contentType": 0,
|
||||||
|
"relative": false,
|
||||||
|
"name": "参数1_文本",
|
||||||
|
"desc": "",
|
||||||
|
"extractType": 0,
|
||||||
|
"relativeXPath": "/html/body/div[4]/div[1]/ul[1]",
|
||||||
|
"allXPaths": [
|
||||||
|
"/html/body/div[4]/div[1]/ul[1]",
|
||||||
|
"//ul[contains(., '领券中心今日推荐')]",
|
||||||
|
"id(\"nav-list\")"
|
||||||
|
],
|
||||||
|
"exampleValues": [
|
||||||
|
{
|
||||||
|
"num": 0,
|
||||||
|
"value": "领券中心今日推荐"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"default": "",
|
||||||
|
"beforeJS": "arguments[0].innerText = arguments[0].innerText + \"1\"",
|
||||||
|
"beforeJSWaitTime": 0,
|
||||||
|
"JS": "",
|
||||||
|
"JSWaitTime": 0,
|
||||||
|
"afterJS": "arguments[0].innerText = arguments[0].innerText + \"2\"",
|
||||||
|
"afterJSWaitTime": 0
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
1
Releases/EasySpider_windows_amd64/tasks/41.json
Normal file
1
Releases/EasySpider_windows_amd64/tasks/41.json
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"id":41,"name":"自定义操作示例","url":"https://www.jd.com","links":"https://www.jd.com","create_time":"5/19/2023, 1:04:24 AM","containJudge":false,"desc":"0.3.0及以上","inputParameters":[{"id":0,"name":"urlList_0","nodeId":1,"nodeName":"打开网页","value":"https://www.jd.com","desc":"要采集的网址列表,多行以\\n分开","type":"string","exampleValue":"https://www.jd.com"}],"outputParameters":[{"id":0,"name":"参数1_文本","desc":"","type":"string","exampleValue":"/手机/数码"},{"id":1,"name":"自定义操作","desc":"自定义操作返回的数据","type":"string","exampleValue":""},{"id":2,"name":"自定义操作2","desc":"自定义操作返回的数据","type":"string","exampleValue":""}],"graph":[{"index":0,"id":0,"parentId":0,"type":-1,"option":0,"title":"root","sequence":[1,2,4,5],"parameters":{"history":1,"tabIndex":0,"useLoop":false,"xpath":"","wait":0},"isInLoop":false},{"id":1,"index":1,"parentId":0,"type":0,"option":1,"title":"打开网页","sequence":[],"isInLoop":false,"position":0,"parameters":{"useLoop":false,"xpath":"","wait":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"url":"https://www.jd.com","links":"https://www.jd.com","scrollType":0,"scrollCount":0}},{"id":2,"index":2,"parentId":0,"type":1,"option":8,"title":"循环","sequence":[3],"isInLoop":false,"position":1,"parameters":{"history":4,"tabIndex":-1,"useLoop":false,"xpath":"/html/body/div[5]/div[1]/div[1]/div[1]/div[1]/div[1]/div[1]/div[1]/div[1]/div","wait":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"scrollType":0,"scrollCount":0,"loopType":1,"pathList":"","textList":"","code":"","waitTime":0,"exitCount":0,"historyWait":2,"allXPaths":["/html/body/div[5]/div[1]/div[1]/div[1]/div[1]/div[1]/div[1]/div[1]/div[1]/div[1]","//div[contains(., '/手机/数码')]","//DIV[@class='LeftSide_menu_item__SBMWC LeftSide_text_space__2UhbG ']"]}},{"id":5,"index":3,"parentId":2,"type":0,"option":3,"title":"提取数据","sequence":[],"isInLoop":true,"position":0,"parameters":{"history":4,"tabIndex":-1,"useLoop":false,"xpath":"","wait":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"paras":[{"nodeType":0,"contentType":9,"relative":true,"name":"参数1_文本","desc":"","extractType":0,"relativeXPath":"","allXPaths":"","exampleValues":[{"num":0,"value":"/手机/数码"},{"num":1,"value":"/家用电器"},{"num":2,"value":"/电脑/办公"},{"num":3,"value":"/家纺/家居/厨具"},{"num":4,"value":"/家具/家装/灯具/工业品"},{"num":5,"value":"/内衣/男装/女装/童装"},{"num":6,"value":"/箱包/钟表/珠宝/女鞋"},{"num":7,"value":"/运动/户外/男鞋"},{"num":8,"value":"/汽车用品/车载电器"},{"num":9,"value":"/母婴/洗护喂养"},{"num":10,"value":"/玩具乐器/宠物生活"},{"num":11,"value":"/家庭清洁/个人护理/计生情趣"},{"num":12,"value":"/图书/童书/文学"}],"default":"","beforeJS":"arguments[0].innerText = arguments[0].innerText + \"类别\"","beforeJSWaitTime":0,"JS":"return arguments[0].innerText.replace(\"女\", \"Girl\")","JSWaitTime":0,"afterJS":"arguments[0].innerText = \"类别2\" + arguments[0].innerText","afterJSWaitTime":0}],"loopType":1}},{"id":3,"index":4,"parentId":0,"type":0,"option":5,"title":"自定义操作","sequence":[],"isInLoop":false,"position":2,"parameters":{"history":1,"tabIndex":0,"useLoop":false,"xpath":"","wait":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"codeMode":0,"code":"return window.innerHeight","waitTime":0,"recordASField":true}},{"id":4,"index":5,"parentId":0,"type":0,"option":5,"title":"自定义操作2","sequence":[],"isInLoop":false,"position":3,"parameters":{"history":1,"tabIndex":0,"useLoop":false,"xpath":"","wait":20,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"codeMode":"1","code":"python D:/test.py","waitTime":0,"recordASField":true}}]}
|
1
Releases/EasySpider_windows_amd64/tasks/42.json
Normal file
1
Releases/EasySpider_windows_amd64/tasks/42.json
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"id":42,"name":"高级循环和判断","url":"https://www.jd.com","links":"https://www.jd.com","create_time":"5/19/2023, 2:36:17 AM","containJudge":true,"desc":"https://www.jd.com","inputParameters":[{"id":0,"name":"urlList_0","nodeId":1,"nodeName":"打开网页","value":"https://www.jd.com","desc":"要采集的网址列表,多行以\\n分开","type":"string","exampleValue":"https://www.jd.com"}],"outputParameters":[{"id":0,"name":"自定义操作","desc":"自定义操作返回的数据","type":"string","exampleValue":""}],"graph":[{"index":0,"id":0,"parentId":0,"type":-1,"option":0,"title":"root","sequence":[1,2],"parameters":{"history":1,"tabIndex":0,"useLoop":false,"xpath":"","wait":0},"isInLoop":false},{"id":1,"index":1,"parentId":0,"type":0,"option":1,"title":"打开网页","sequence":[],"isInLoop":false,"position":0,"parameters":{"useLoop":false,"xpath":"","wait":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"url":"https://www.jd.com","links":"https://www.jd.com","scrollType":0,"scrollCount":0}},{"id":2,"index":2,"parentId":0,"type":1,"option":8,"title":"循环","sequence":[4],"isInLoop":false,"position":1,"parameters":{"history":1,"tabIndex":0,"useLoop":false,"xpath":"","wait":3,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"scrollType":0,"scrollCount":0,"loopType":"6","pathList":"","textList":"","code":"python D:/test.py","waitTime":0,"exitCount":0,"historyWait":2}},{"id":6,"index":3,"parentId":4,"type":0,"option":5,"title":"自定义操作","sequence":[],"isInLoop":true,"position":0,"parameters":{"history":1,"tabIndex":0,"useLoop":false,"xpath":"","wait":3,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"codeMode":0,"code":"return window.innerHeight","waitTime":0,"recordASField":"1"}},{"id":3,"index":4,"parentId":2,"type":2,"option":9,"title":"判断条件","sequence":[5,6],"isInLoop":true,"position":0,"parameters":{"history":1,"tabIndex":0,"useLoop":false,"xpath":"","wait":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0}},{"id":4,"parentId":3,"index":5,"type":3,"option":10,"title":"条件分支","sequence":[3],"isInLoop":true,"parameters":{"history":1,"tabIndex":0,"useLoop":false,"xpath":"","wait":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"class":"5","value":"","code":"return window.innerWidth > 500","waitTime":0},"position":0},{"id":5,"parentId":3,"index":6,"type":3,"option":10,"title":"条件分支","sequence":[7],"isInLoop":true,"parameters":{"history":1,"tabIndex":0,"useLoop":false,"xpath":"","wait":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"class":0,"value":"","code":"","waitTime":0},"position":1},{"id":7,"index":7,"parentId":5,"type":0,"option":5,"title":"自定义操作2","sequence":[],"isInLoop":true,"position":0,"parameters":{"history":1,"tabIndex":0,"useLoop":false,"xpath":"","wait":3,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"codeMode":"1","code":"python D:/test.py","waitTime":0,"recordASField":0}}]}
|
1
Releases/EasySpider_windows_amd64/tasks/43.json
Normal file
1
Releases/EasySpider_windows_amd64/tasks/43.json
Normal file
File diff suppressed because one or more lines are too long
1
Releases/EasySpider_windows_amd64/tasks/44.json
Normal file
1
Releases/EasySpider_windows_amd64/tasks/44.json
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"id":44,"name":"元素截图","url":"https://www.jd.com","links":"https://www.jd.com","create_time":"5/19/2023, 3:17:56 AM","containJudge":false,"desc":"https://www.jd.com","inputParameters":[{"id":0,"name":"urlList_0","nodeId":1,"nodeName":"打开网页","value":"https://www.jd.com","desc":"要采集的网址列表,多行以\\n分开","type":"string","exampleValue":"https://www.jd.com"}],"outputParameters":[{"id":0,"name":"参数1_文本","desc":"","type":"string","exampleValue":"/手机/数码"}],"graph":[{"index":0,"id":0,"parentId":0,"type":-1,"option":0,"title":"root","sequence":[1,2],"parameters":{"history":1,"tabIndex":0,"useLoop":false,"xpath":"","wait":0},"isInLoop":false},{"id":1,"index":1,"parentId":0,"type":0,"option":1,"title":"打开网页","sequence":[],"isInLoop":false,"position":0,"parameters":{"useLoop":false,"xpath":"","wait":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"url":"https://www.jd.com","links":"https://www.jd.com","scrollType":0,"scrollCount":0}},{"id":2,"index":2,"parentId":0,"type":1,"option":8,"title":"循环","sequence":[3],"isInLoop":false,"position":1,"parameters":{"history":4,"tabIndex":-1,"useLoop":false,"xpath":"/html/body/div[5]/div[1]/div[1]/div[1]/div[1]/div[1]/div[1]/div[1]/div[1]/div","wait":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"scrollType":0,"scrollCount":0,"loopType":1,"pathList":"","textList":"","code":"","waitTime":0,"exitCount":0,"historyWait":2,"allXPaths":["/html/body/div[5]/div[1]/div[1]/div[1]/div[1]/div[1]/div[1]/div[1]/div[1]/div[1]","//div[contains(., '/手机/数码')]","//DIV[@class='LeftSide_menu_item__SBMWC LeftSide_text_space__2UhbG ']"]}},{"id":3,"index":3,"parentId":2,"type":0,"option":3,"title":"提取数据","sequence":[],"isInLoop":true,"position":0,"parameters":{"history":4,"tabIndex":-1,"useLoop":false,"xpath":"","wait":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"paras":[{"nodeType":0,"contentType":7,"relative":true,"name":"参数1_文本","desc":"","extractType":0,"relativeXPath":"","allXPaths":"","exampleValues":[{"num":0,"value":"/手机/数码"},{"num":1,"value":"/家用电器"},{"num":2,"value":"/电脑/办公"},{"num":3,"value":"/家纺/家居/厨具"},{"num":4,"value":"/家具/家装/灯具/工业品"},{"num":5,"value":"/内衣/男装/女装/童装"},{"num":6,"value":"/箱包/钟表/珠宝/女鞋"},{"num":7,"value":"/运动/户外/男鞋"},{"num":8,"value":"/汽车用品/车载电器"},{"num":9,"value":"/母婴/洗护喂养"},{"num":10,"value":"/玩具乐器/宠物生活"},{"num":11,"value":"/家庭清洁/个人护理/计生情趣"},{"num":12,"value":"/图书/童书/文学"}],"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0}],"loopType":1}}]}
|
1
Releases/EasySpider_windows_amd64/tasks/45.json
Normal file
1
Releases/EasySpider_windows_amd64/tasks/45.json
Normal file
File diff suppressed because one or more lines are too long
1
Releases/EasySpider_windows_amd64/tasks/46.json
Normal file
1
Releases/EasySpider_windows_amd64/tasks/46.json
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"id":46,"name":"百度文库","url":"https://wenku.baidu.com/view/98593fe25ff7ba0d4a7302768e9951e79b896989.html?fr=hp_Database&_wkts_=1684437368706","links":"https://wenku.baidu.com/view/98593fe25ff7ba0d4a7302768e9951e79b896989.html?fr=hp_Database&_wkts_=1684437368706","create_time":"5/19/2023, 3:24:01 AM","containJudge":false,"desc":"https://wenku.baidu.com/view/98593fe25ff7ba0d4a7302768e9951e79b896989.html?fr=hp_Database&_wkts_=1684437368706","inputParameters":[{"id":0,"name":"urlList_0","nodeId":1,"nodeName":"打开网页","value":"https://wenku.baidu.com/view/98593fe25ff7ba0d4a7302768e9951e79b896989.html?fr=hp_Database&_wkts_=1684437368706","desc":"要采集的网址列表,多行以\\n分开","type":"string","exampleValue":"https://wenku.baidu.com/view/98593fe25ff7ba0d4a7302768e9951e79b896989.html?fr=hp_Database&_wkts_=1684437368706"}],"outputParameters":[{"id":0,"name":"参数1_文本","desc":"","type":"string","exampleValue":""}],"graph":[{"index":0,"id":0,"parentId":0,"type":-1,"option":0,"title":"root","sequence":[1,2],"parameters":{"history":1,"tabIndex":0,"useLoop":false,"xpath":"","wait":0},"isInLoop":false},{"id":1,"index":1,"parentId":0,"type":0,"option":1,"title":"打开网页","sequence":[],"isInLoop":false,"position":0,"parameters":{"useLoop":false,"xpath":"","wait":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"url":"https://wenku.baidu.com/view/98593fe25ff7ba0d4a7302768e9951e79b896989.html?fr=hp_Database&_wkts_=1684437368706","links":"https://wenku.baidu.com/view/98593fe25ff7ba0d4a7302768e9951e79b896989.html?fr=hp_Database&_wkts_=1684437368706","scrollType":0,"scrollCount":0}},{"id":2,"index":2,"parentId":0,"type":1,"option":8,"title":"循环","sequence":[3],"isInLoop":false,"position":1,"parameters":{"history":4,"tabIndex":-1,"useLoop":false,"xpath":"//canvas","wait":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"scrollType":0,"scrollCount":0,"loopType":1,"pathList":"","textList":"","code":"","waitTime":0,"exitCount":0,"historyWait":2,"allXPaths":["/html/body/div[3]/div[2]/div[2]/div[4]/div[1]/div[1]/div[3]/div[2]/div[1]/canvas[1]","//canvas[contains(., '')]","id(\"original-creader-canvas-1\")","//CANVAS[@class='creader-canvas']"]}},{"id":3,"index":3,"parentId":2,"type":0,"option":3,"title":"提取数据","sequence":[],"isInLoop":true,"position":0,"parameters":{"history":4,"tabIndex":-1,"useLoop":false,"xpath":"","wait":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"paras":[{"nodeType":0,"contentType":8,"relative":true,"name":"参数1_文本","desc":"","extractType":0,"relativeXPath":"","allXPaths":"","exampleValues":[{"num":0,"value":""},{"num":1,"value":""}],"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0}],"loopType":1}}]}
|
1
Releases/EasySpider_windows_amd64/tasks/47.json
Normal file
1
Releases/EasySpider_windows_amd64/tasks/47.json
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"id":47,"name":"OCR","url":"https://www.jd.com","links":"https://www.jd.com","create_time":"5/19/2023, 3:35:21 AM","containJudge":false,"desc":"https://www.jd.com","inputParameters":[{"id":0,"name":"urlList_0","nodeId":1,"nodeName":"打开网页","value":"https://www.jd.com","desc":"要采集的网址列表,多行以\\n分开","type":"string","exampleValue":"https://www.jd.com"}],"outputParameters":[{"id":0,"name":"参数1_图片地址","desc":"","type":"string","exampleValue":"//m.360buyimg.com/babel/jfs/t1/67826/3/24736/33064/63fffd07F86731bb8/b7f9381b8f3b98b1.png"}],"graph":[{"index":0,"id":0,"parentId":0,"type":-1,"option":0,"title":"root","sequence":[1,2],"parameters":{"history":1,"tabIndex":0,"useLoop":false,"xpath":"","wait":0},"isInLoop":false},{"id":1,"index":1,"parentId":0,"type":0,"option":1,"title":"打开网页","sequence":[],"isInLoop":false,"position":0,"parameters":{"useLoop":false,"xpath":"","wait":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"url":"https://www.jd.com","links":"https://www.jd.com","scrollType":0,"scrollCount":0}},{"id":2,"index":2,"parentId":0,"type":0,"option":3,"title":"提取数据","sequence":[],"isInLoop":false,"position":1,"parameters":{"history":4,"tabIndex":0,"useLoop":false,"xpath":"","wait":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"paras":[{"nodeType":0,"contentType":8,"relative":false,"name":"参数1_图片地址","desc":"","extractType":0,"relativeXPath":"/html/body/div[5]/div[1]/div[1]/div[1]/div[2]/div[1]/div[2]/div[1]/a[1]/img[1]","allXPaths":["/html/body/div[5]/div[1]/div[1]/div[1]/div[2]/div[1]/div[2]/div[1]/a[1]/img[1]","//img[contains(., '')]"],"exampleValues":[{"num":0,"value":"//m.360buyimg.com/babel/jfs/t1/67826/3/24736/33064/63fffd07F86731bb8/b7f9381b8f3b98b1.png"}],"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0}]}}]}
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
6
package-lock.json
generated
6
package-lock.json
generated
@ -1,6 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "EasySpider",
|
|
||||||
"lockfileVersion": 3,
|
|
||||||
"requires": true,
|
|
||||||
"packages": {}
|
|
||||||
}
|
|
Loading…
x
Reference in New Issue
Block a user