瀏覽代碼

Version 0.3.0 Beta

pull/43/head
naibo 1 年之前
父節點
當前提交
6096fb46c3
共有 49 個檔案被更改,包括 424 行新增75 行删除
  1. 二進制
      .DS_Store
  2. +1
    -1
      ElectronJS/execution_instances/0.json
  3. +12
    -8
      ElectronJS/src/taskGrid/FlowChart_CN.html
  4. +2
    -2
      ElectronJS/src/taskGrid/FlowChart_CN.js
  5. +2
    -2
      ElectronJS/src/taskGrid/invokeTask.html
  6. +9
    -7
      ElectronJS/src/taskGrid/logic_CN.js
  7. +1
    -0
      ElectronJS/tasks/52.json
  8. +162
    -0
      ElectronJS/tasks/53.json
  9. +6
    -3
      ExecuteStage/easyspider_executestage.py
  10. +19
    -18
      Readme.md
  11. +1
    -1
      Releases/EasySpider_windows_amd64/config.json
  12. +1
    -1
      Releases/EasySpider_windows_amd64/execution_instances/0.json
  13. +0
    -1
      Releases/EasySpider_windows_amd64/execution_instances/1.json
  14. +0
    -1
      Releases/EasySpider_windows_amd64/tasks/11.json
  15. +0
    -1
      Releases/EasySpider_windows_amd64/tasks/15.json
  16. +0
    -1
      Releases/EasySpider_windows_amd64/tasks/16.json
  17. +0
    -1
      Releases/EasySpider_windows_amd64/tasks/17.json
  18. +0
    -1
      Releases/EasySpider_windows_amd64/tasks/19.json
  19. +0
    -1
      Releases/EasySpider_windows_amd64/tasks/2.json
  20. +0
    -1
      Releases/EasySpider_windows_amd64/tasks/20.json
  21. +0
    -1
      Releases/EasySpider_windows_amd64/tasks/23.json
  22. +0
    -1
      Releases/EasySpider_windows_amd64/tasks/25.json
  23. +0
    -1
      Releases/EasySpider_windows_amd64/tasks/27.json
  24. +0
    -1
      Releases/EasySpider_windows_amd64/tasks/28.json
  25. +0
    -1
      Releases/EasySpider_windows_amd64/tasks/29.json
  26. +0
    -1
      Releases/EasySpider_windows_amd64/tasks/30.json
  27. +0
    -1
      Releases/EasySpider_windows_amd64/tasks/31.json
  28. +0
    -1
      Releases/EasySpider_windows_amd64/tasks/32.json
  29. +0
    -1
      Releases/EasySpider_windows_amd64/tasks/33.json
  30. +0
    -1
      Releases/EasySpider_windows_amd64/tasks/34.json
  31. +0
    -1
      Releases/EasySpider_windows_amd64/tasks/35.json
  32. +1
    -0
      Releases/EasySpider_windows_amd64/tasks/36.json
  33. +1
    -0
      Releases/EasySpider_windows_amd64/tasks/37.json
  34. +1
    -0
      Releases/EasySpider_windows_amd64/tasks/38.json
  35. +1
    -0
      Releases/EasySpider_windows_amd64/tasks/39.json
  36. +0
    -1
      Releases/EasySpider_windows_amd64/tasks/4.json
  37. +197
    -0
      Releases/EasySpider_windows_amd64/tasks/40.json
  38. +1
    -0
      Releases/EasySpider_windows_amd64/tasks/41.json
  39. +1
    -0
      Releases/EasySpider_windows_amd64/tasks/42.json
  40. +1
    -0
      Releases/EasySpider_windows_amd64/tasks/43.json
  41. +1
    -0
      Releases/EasySpider_windows_amd64/tasks/44.json
  42. +1
    -0
      Releases/EasySpider_windows_amd64/tasks/45.json
  43. +1
    -0
      Releases/EasySpider_windows_amd64/tasks/46.json
  44. +1
    -0
      Releases/EasySpider_windows_amd64/tasks/47.json
  45. +0
    -1
      Releases/EasySpider_windows_amd64/tasks/5.json
  46. +0
    -1
      Releases/EasySpider_windows_amd64/tasks/6.json
  47. +0
    -1
      Releases/EasySpider_windows_amd64/tasks/7.json
  48. +0
    -3
      build.md
  49. +0
    -6
      package-lock.json

二進制
.DS_Store 查看文件


+ 1
- 1
ElectronJS/execution_instances/0.json 查看文件

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

+ 12
- 8
ElectronJS/src/taskGrid/FlowChart_CN.html 查看文件

@ -41,11 +41,11 @@
<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=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=7 class="btn btn-outline-primary options">移动到元素</button>
<button type="button" data=8 class="btn btn-outline-primary options">循环</button>
<button type="button" data=9 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" style="font-weight: bold">判断条件</button>
<div>-----------------</div>
<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>
@ -141,7 +141,7 @@
<div>
<label>点击该元素<strong></strong>针对该元素执行一段JavaScript脚本: </label>
<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>
<input onkeydown="inputDelete(event)" required class="form-control" type="number" v-model.number='nowNode["parameters"]["beforeJSWaitTime"]'></input>
<label>点击该元素<strong></strong>针对该元素执行一段JavaScript脚本: </label>
@ -195,7 +195,7 @@
<div>
<label>提取该元素数据<strong></strong>针对该元素执行一段JavaScript脚本: </label>
<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>
<input onkeydown="inputDelete(event)" required class="form-control" type="number" v-model.number='paras.parameters[paraIndex]["beforeJSWaitTime"]'></input>
<label>提取该元素数据<strong></strong>针对该元素执行一段JavaScript脚本: </label>
@ -269,7 +269,7 @@
<div>
<label>对该元素输入文字<strong></strong>针对该元素执行一段JavaScript脚本: </label>
<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>
<input onkeydown="inputDelete(event)" required class="form-control" type="number" v-model.number='nowNode["parameters"]["beforeJSWaitTime"]'></input>
<label>对该元素输入文字<strong></strong>针对该元素执行一段JavaScript脚本: </label>
@ -289,8 +289,12 @@
<div>
<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>
<p><input onkeydown="inputDelete(event)" type="checkbox" v-model='nowNode["parameters"]["recordASField"]'></input>将执行后的输出/返回值作为字段记录</p>
<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 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>
<input onkeydown="inputDelete(event)" required class="form-control" type="number" v-model.number='nowNode["parameters"]["waitTime"]'></input>
</div>

+ 2
- 2
ElectronJS/src/taskGrid/FlowChart_CN.js 查看文件

@ -552,12 +552,12 @@ document.onkeydown = function(e) {
deleteElement();
}
} else { //ctrl+s保存服务
var currKey = 0,
let currKey = 0,
e = e || event || window.event;
currKey = e.keyCode || e.which || e.charCode;
if (currKey == 83 && (e.ctrlKey || e.metaKey)) {
$('#save').click();
return false;
return true;
}
}

+ 2
- 2
ElectronJS/src/taskGrid/invokeTask.html 查看文件

@ -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><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}}
{{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 class="modal-footer">
<button type="button" id="saveAsButton" class="btn btn-outline-primary">另存为</button>
@ -202,7 +202,7 @@
}
},
localExecute: function (with_user_data=false) {
if (this.ID == "") {
if (this.ID === "") {
if (getUrlParam("lang") == "en" || getUrlParam("lang") == "") {
alert("Please get EID first!");
} else {

+ 9
- 7
ElectronJS/src/taskGrid/logic_CN.js 查看文件

@ -239,13 +239,13 @@ var sId = getUrlParam('id');
var backEndAddressServiceWrapper = getUrlParam("backEndAddressServiceWrapper");
function saveService(type) {
var serviceId = $("#serviceId").val();
var text = "确认要保存任务吗(不能用鼠标点击时,请按键盘回车键)?";
let serviceId = $("#serviceId").val();
let text = "确认要保存任务吗(不能用鼠标点击时,请按键盘回车键)?";
if (type == 1) { //任务另存为
serviceId = -1;
text = "确认要另存为任务吗(不能用鼠标点击时,请按键盘回车键)?";
}
if (confirm(text)) {
// if (confirm(text)) {
let serviceName = $("#serviceName").val();
let url = $("#url").val();
let serviceDescription = $("#serviceDescription").val();
@ -330,7 +330,7 @@ function saveService(type) {
}
} else if (nodeList[i]["option"] == 5) //自定义操作
{
if (nodeList[i]["parameters"]["recordASField"]) {
if (nodeList[i]["parameters"]["recordASField"] == 1) {
let id = outputIndex++;
let title = nodeList[i]["title"];
if (outputNames.indexOf(title) >= 0) { //参数名称已经被添加
@ -361,21 +361,23 @@ function saveService(type) {
"name": serviceName,
"url": url,
"links": links,
"create_time": new Date().toLocaleString(),
"containJudge": containJudge,
"desc": serviceDescription,
"inputParameters": inputParameters,
"outputParameters": outputParameters,
"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("保存成功!");
$('#myModal').modal('hide');
$("#tip").slideDown(); //提示框
fadeout = setTimeout(function() {
let fadeout = setTimeout(function() {
$("#tip").slideUp();
}, 2000);
}
// }
}
//点击保存任务按钮时的处理

+ 1
- 0
ElectronJS/tasks/52.json 查看文件

@ -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
- 0
ElectronJS/tasks/53.json 查看文件

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

+ 6
- 3
ExecuteStage/easyspider_executestage.py 查看文件

@ -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 = output.stdout
print(output)
except subprocess.TimeoutExpired:
# 命令执行时间超过5秒,抛出异常
recordLog("Command timed out")
@ -140,7 +141,7 @@ def customOperation(node, loopValue):
code = paras["code"]
max_wait_time = int(paras["waitTime"])
output = execute_code(codeMode, code, max_wait_time)
recordASField = paras["recordASField"]
recordASField = int(paras["recordASField"])
if recordASField:
global OUTPUT, outputParameters
outputParameters[node["title"]] = output
@ -644,6 +645,8 @@ def getData(para, loopElement, isInLoop=True, parentPath="", index=0):
else:
element = browser.find_element(By.XPATH, p["relativeXPath"])
rt.end()
else:
element = browser.find_element(By.XPATH, "//body")
try:
execute_code(2, p["beforeJS"], p["beforeJSWaitTime"], element) # 执行前置js
if p["contentType"] == 2:
@ -874,7 +877,7 @@ if __name__ == '__main__':
"read_type": "remote",
"user_data": False,
"config_folder": "",
"config_name": "config.json",
"config_file_name": "config.json",
"headless": False,
}
c = Config(config)
@ -952,7 +955,7 @@ if __name__ == '__main__':
# 3. 就算User Profile相同,chrome版本不同所存储的cookie信息也不同,也不能爬
# 4. TMALL如果一直弹出验证码,而且无法通过验证,那么需要在其他浏览器上用
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)
absolute_user_data_folder = config["absolute_user_data_folder"]
print("\nAbsolute_user_data_folder:",absolute_user_data_folder,"\n")

+ 19
- 18
Readme.md 查看文件

@ -1,6 +1,6 @@
## 请您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!
@ -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.
## 声明/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
请点此进入[教程文档](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站视频教程:
[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)
@ -61,9 +47,24 @@ Bilibili/B站视频教程:
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
- 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月。

+ 1
- 1
Releases/EasySpider_windows_amd64/config.json 查看文件

@ -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
Releases/EasySpider_windows_amd64/execution_instances/0.json 查看文件

@ -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}}]}

+ 0
- 1
Releases/EasySpider_windows_amd64/execution_instances/1.json 查看文件

@ -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}}]}

+ 0
- 1
Releases/EasySpider_windows_amd64/tasks/11.json
文件差異過大導致無法顯示
查看文件


+ 0
- 1
Releases/EasySpider_windows_amd64/tasks/15.json
文件差異過大導致無法顯示
查看文件


+ 0
- 1
Releases/EasySpider_windows_amd64/tasks/16.json
文件差異過大導致無法顯示
查看文件


+ 0
- 1
Releases/EasySpider_windows_amd64/tasks/17.json
文件差異過大導致無法顯示
查看文件


+ 0
- 1
Releases/EasySpider_windows_amd64/tasks/19.json
文件差異過大導致無法顯示
查看文件


+ 0
- 1
Releases/EasySpider_windows_amd64/tasks/2.json
文件差異過大導致無法顯示
查看文件


+ 0
- 1
Releases/EasySpider_windows_amd64/tasks/20.json 查看文件

@ -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}}]}

+ 0
- 1
Releases/EasySpider_windows_amd64/tasks/23.json
文件差異過大導致無法顯示
查看文件


+ 0
- 1
Releases/EasySpider_windows_amd64/tasks/25.json
文件差異過大導致無法顯示
查看文件


+ 0
- 1
Releases/EasySpider_windows_amd64/tasks/27.json
文件差異過大導致無法顯示
查看文件


+ 0
- 1
Releases/EasySpider_windows_amd64/tasks/28.json
文件差異過大導致無法顯示
查看文件


+ 0
- 1
Releases/EasySpider_windows_amd64/tasks/29.json
文件差異過大導致無法顯示
查看文件


+ 0
- 1
Releases/EasySpider_windows_amd64/tasks/30.json
文件差異過大導致無法顯示
查看文件


+ 0
- 1
Releases/EasySpider_windows_amd64/tasks/31.json
文件差異過大導致無法顯示
查看文件


+ 0
- 1
Releases/EasySpider_windows_amd64/tasks/32.json 查看文件

@ -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}}]}

+ 0
- 1
Releases/EasySpider_windows_amd64/tasks/33.json
文件差異過大導致無法顯示
查看文件


+ 0
- 1
Releases/EasySpider_windows_amd64/tasks/34.json 查看文件

@ -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}}]}

+ 0
- 1
Releases/EasySpider_windows_amd64/tasks/35.json 查看文件

@ -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
- 0
Releases/EasySpider_windows_amd64/tasks/36.json
文件差異過大導致無法顯示
查看文件


+ 1
- 0
Releases/EasySpider_windows_amd64/tasks/37.json 查看文件

@ -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
- 0
Releases/EasySpider_windows_amd64/tasks/38.json 查看文件

@ -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
- 0
Releases/EasySpider_windows_amd64/tasks/39.json
文件差異過大導致無法顯示
查看文件


+ 0
- 1
Releases/EasySpider_windows_amd64/tasks/4.json
文件差異過大導致無法顯示
查看文件


+ 197
- 0
Releases/EasySpider_windows_amd64/tasks/40.json 查看文件

@ -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
- 0
Releases/EasySpider_windows_amd64/tasks/41.json 查看文件

@ -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
- 0
Releases/EasySpider_windows_amd64/tasks/42.json 查看文件

@ -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
- 0
Releases/EasySpider_windows_amd64/tasks/43.json
文件差異過大導致無法顯示
查看文件


+ 1
- 0
Releases/EasySpider_windows_amd64/tasks/44.json 查看文件

@ -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
- 0
Releases/EasySpider_windows_amd64/tasks/45.json
文件差異過大導致無法顯示
查看文件


+ 1
- 0
Releases/EasySpider_windows_amd64/tasks/46.json 查看文件

@ -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
- 0
Releases/EasySpider_windows_amd64/tasks/47.json 查看文件

@ -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}]}}]}

+ 0
- 1
Releases/EasySpider_windows_amd64/tasks/5.json
文件差異過大導致無法顯示
查看文件


+ 0
- 1
Releases/EasySpider_windows_amd64/tasks/6.json
文件差異過大導致無法顯示
查看文件


+ 0
- 1
Releases/EasySpider_windows_amd64/tasks/7.json
文件差異過大導致無法顯示
查看文件


+ 0
- 3
build.md 查看文件

@ -1,3 +0,0 @@
# Build Instructions
## Prerequisites

+ 0
- 6
package-lock.json 查看文件

@ -1,6 +0,0 @@
{
"name": "EasySpider",
"lockfileVersion": 3,
"requires": true,
"packages": {}
}

Loading…
取消
儲存