From 11cda1bc1f6529a2fbf76c9d4815274f9a452603 Mon Sep 17 00:00:00 2001 From: NaiboWang-Alienware Date: Tue, 4 Jul 2023 21:20:01 +0800 Subject: [PATCH] IFrame Alpha --- .../src/taskGrid/test_pages/iframe.html | 34 ++ ElectronJS/tasks/117.json | 2 +- ElectronJS/tasks/118.json | 380 +----------------- ElectronJS/tasks/124.json | 1 + ElectronJS/tasks/125.json | 1 + ExecuteStage/.vscode/launch.json | 2 +- ExecuteStage/easyspider_executestage.py | 26 +- ExecuteStage/myChrome.py | 13 + 8 files changed, 67 insertions(+), 392 deletions(-) create mode 100644 ElectronJS/src/taskGrid/test_pages/iframe.html create mode 100644 ElectronJS/tasks/124.json create mode 100644 ElectronJS/tasks/125.json diff --git a/ElectronJS/src/taskGrid/test_pages/iframe.html b/ElectronJS/src/taskGrid/test_pages/iframe.html new file mode 100644 index 0000000..9b51382 --- /dev/null +++ b/ElectronJS/src/taskGrid/test_pages/iframe.html @@ -0,0 +1,34 @@ + + + + Dynamic Iframe + + + +

IFRAME TEST

+ + + + + + + + + + + + + +
Header 1Header 2
Row 1, Cell 1Row 1, Cell 2
Row 2, Cell 1Row 2, Cell 2
+ + + + diff --git a/ElectronJS/tasks/117.json b/ElectronJS/tasks/117.json index 99c074d..09a4503 100644 --- a/ElectronJS/tasks/117.json +++ b/ElectronJS/tasks/117.json @@ -1 +1 @@ -{"id":117,"name":"iP地址查询--手机号码查询归属地 | 邮政编码查询 | iP地址归属地查询 | 身份证号码验证在线查询网","url":"https://www.ip138.com","links":"https://www.ip138.com","create_time":"7/4/2023, 8:33:55 AM","version":"0.3.5","saveThreshold":10,"cloudflare":0,"environment":0,"containJudge":false,"desc":"https://www.ip138.com","inputParameters":[{"id":0,"name":"urlList_0","nodeId":1,"nodeName":"打开网页","value":"https://www.ip138.com","desc":"要采集的网址列表,多行以\\n分开","type":"string","exampleValue":"https://www.ip138.com"}],"outputParameters":[{"id":0,"name":"参数1_文本","desc":"","type":"string","exampleValue":"您的iP地址是:[]来自:新加坡Singtel"},{"id":1,"name":"参数2_链接文本","desc":"","type":"string","exampleValue":"220.255.29.208"},{"id":2,"name":"参数3_链接地址","desc":"","type":"string","exampleValue":"https://www.ip138.com/iplookup.php?ip=220.255.29.208&action=2"},{"id":3,"name":"参数4_链接文本","desc":"","type":"string","exampleValue":""},{"id":4,"name":"参数5_链接地址","desc":"","type":"string","exampleValue":"https://www.ipshudi.com/"},{"id":5,"name":"参数6_图片地址","desc":"","type":"string","exampleValue":"https://6.ipchaxun.net/220.255.29.208.gif"},{"id":6,"name":"参数7_文本","desc":"","type":"string","exampleValue":"ip查询api接口"}],"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,"waitType":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"url":"https://www.ip138.com","links":"https://www.ip138.com","maxWaitTime":10,"scrollType":0,"scrollCount":1,"scrollWaitTime":1}},{"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/p","iframe":true,"wait":0,"waitType":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"scrollType":0,"scrollCount":1,"scrollWaitTime":1,"loopType":1,"pathList":"","textList":"","code":"","waitTime":0,"exitCount":0,"historyWait":2,"breakMode":0,"breakCode":"","breakCodeWaitTime":0,"allXPaths":["/html/body/p[1]","//p[contains(., '您的iP地址是:[')]","/html/body/p[last()-2]"]}},{"id":3,"index":3,"parentId":2,"type":0,"option":3,"title":"提取数据","sequence":[],"isInLoop":true,"position":0,"parameters":{"history":4,"tabIndex":-1,"useLoop":false,"xpath":"","iframe":true,"wait":0,"waitType":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"paras":[{"nodeType":0,"contentType":1,"relative":true,"name":"参数1_文本","desc":"","relativeXPath":"","allXPaths":["","//p[contains(., '您的iP地址是:[')]","/html/body/p[last()-2]"],"exampleValues":[{"num":0,"value":"您的iP地址是:[]来自:新加坡Singtel"}],"unique_index":"","iframe":true,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0},{"nodeType":1,"contentType":0,"relative":true,"name":"参数2_链接文本","desc":"","relativeXPath":"/a[1]","allXPaths":["/a[1]","//a[contains(., '220.255.29')]","/html/body/p[last()-2]/a[last()-1]"],"exampleValues":[{"num":0,"value":"220.255.29.208"}],"unique_index":"/a[1]","iframe":true,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0},{"nodeType":2,"contentType":0,"relative":true,"name":"参数3_链接地址","desc":"","relativeXPath":"/a[1]","allXPaths":["/a[1]","//a[contains(., '220.255.29')]","/html/body/p[last()-2]/a[last()-1]"],"exampleValues":[{"num":0,"value":"https://www.ip138.com/iplookup.php?ip=220.255.29.208&action=2"}],"unique_index":"/a[1]","iframe":true,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0},{"nodeType":1,"contentType":0,"relative":true,"name":"参数4_链接文本","desc":"","relativeXPath":"/a[2]","allXPaths":["/a[2]","//a[contains(., '')]","/html/body/p[last()-2]/a"],"exampleValues":[{"num":0,"value":""}],"unique_index":"/a[2]","iframe":true,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0},{"nodeType":2,"contentType":0,"relative":true,"name":"参数5_链接地址","desc":"","relativeXPath":"/a[2]","allXPaths":["/a[2]","//a[contains(., '')]","/html/body/p[last()-2]/a"],"exampleValues":[{"num":0,"value":"https://www.ipshudi.com/"}],"unique_index":"/a[2]","iframe":true,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0},{"nodeType":4,"contentType":1,"relative":true,"name":"参数6_图片地址","desc":"","relativeXPath":"/a[2]/img[1]","allXPaths":["/a[2]/img[1]","//img[contains(., '')]","/html/body/p[last()-2]/a/img"],"exampleValues":[{"num":0,"value":"https://6.ipchaxun.net/220.255.29.208.gif"}],"unique_index":"/a[2]/img[1]","iframe":true,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0},{"nodeType":0,"contentType":1,"relative":true,"name":"参数7_文本","desc":"","relativeXPath":"/a[1]/font[1]","allXPaths":["/a[1]/font[1]","//font[contains(., 'ip查询api接口')]","/html/body/p[last()-1]/a/font"],"exampleValues":[{"num":1,"value":"ip查询api接口"}],"unique_index":"/a[1]/font[1]","iframe":true,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0}],"loopType":1}}]} \ No newline at end of file +{"id":117,"name":"iP地址查询--138","url":"https://www.ip138.com","links":"https://www.ip138.com","create_time":"7/4/2023, 7:41:36 PM","version":"0.3.5","saveThreshold":10,"cloudflare":0,"environment":0,"containJudge":false,"desc":"https://www.ip138.com","inputParameters":[{"id":0,"name":"urlList_0","nodeId":1,"nodeName":"打开网页","value":"https://www.ip138.com","desc":"要采集的网址列表,多行以\\n分开","type":"string","exampleValue":"https://www.ip138.com"}],"outputParameters":[{"id":0,"name":"参数1_文本","desc":"","type":"string","exampleValue":"您的iP地址是:[]来自:新加坡Singtel"},{"id":1,"name":"参数2_链接文本","desc":"","type":"string","exampleValue":"220.255.29.208"},{"id":2,"name":"参数3_链接地址","desc":"","type":"string","exampleValue":"https://www.ip138.com/iplookup.php?ip=220.255.29.208&action=2"},{"id":3,"name":"参数4_链接文本","desc":"","type":"string","exampleValue":""},{"id":4,"name":"参数5_链接地址","desc":"","type":"string","exampleValue":"https://www.ipshudi.com/"},{"id":5,"name":"参数6_图片地址","desc":"","type":"string","exampleValue":"https://6.ipchaxun.net/220.255.29.208.gif"},{"id":6,"name":"参数7_文本","desc":"","type":"string","exampleValue":"ip查询api接口"}],"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,"waitType":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"url":"https://www.ip138.com","links":"https://www.ip138.com","maxWaitTime":10,"scrollType":0,"scrollCount":1,"scrollWaitTime":1}},{"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/p","iframe":true,"wait":0,"waitType":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"scrollType":0,"scrollCount":1,"scrollWaitTime":1,"loopType":1,"pathList":"","textList":"","code":"","waitTime":0,"exitCount":0,"historyWait":2,"breakMode":0,"breakCode":"","breakCodeWaitTime":0,"allXPaths":["/html/body/p[1]","//p[contains(., '您的iP地址是:[')]","/html/body/p[last()-2]"]}},{"id":3,"index":3,"parentId":2,"type":0,"option":3,"title":"提取数据","sequence":[],"isInLoop":true,"position":0,"parameters":{"history":4,"tabIndex":-1,"useLoop":false,"xpath":"","iframe":true,"wait":0,"waitType":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"paras":[{"nodeType":0,"contentType":1,"relative":true,"name":"参数1_文本","desc":"","relativeXPath":"","allXPaths":["","//p[contains(., '您的iP地址是:[')]","/html/body/p[last()-2]"],"exampleValues":[{"num":0,"value":"您的iP地址是:[]来自:新加坡Singtel"}],"unique_index":"","iframe":true,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0},{"nodeType":1,"contentType":0,"relative":true,"name":"参数2_链接文本","desc":"","relativeXPath":"/a[1]","allXPaths":["/a[1]","//a[contains(., '220.255.29')]","/html/body/p[last()-2]/a[last()-1]"],"exampleValues":[{"num":0,"value":"220.255.29.208"}],"unique_index":"/a[1]","iframe":true,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0},{"nodeType":2,"contentType":0,"relative":true,"name":"参数3_链接地址","desc":"","relativeXPath":"/a[1]","allXPaths":["/a[1]","//a[contains(., '220.255.29')]","/html/body/p[last()-2]/a[last()-1]"],"exampleValues":[{"num":0,"value":"https://www.ip138.com/iplookup.php?ip=220.255.29.208&action=2"}],"unique_index":"/a[1]","iframe":true,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0},{"nodeType":1,"contentType":0,"relative":true,"name":"参数4_链接文本","desc":"","relativeXPath":"/a[2]","allXPaths":["/a[2]","//a[contains(., '')]","/html/body/p[last()-2]/a"],"exampleValues":[{"num":0,"value":""}],"unique_index":"/a[2]","iframe":true,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0},{"nodeType":2,"contentType":0,"relative":true,"name":"参数5_链接地址","desc":"","relativeXPath":"/a[2]","allXPaths":["/a[2]","//a[contains(., '')]","/html/body/p[last()-2]/a"],"exampleValues":[{"num":0,"value":"https://www.ipshudi.com/"}],"unique_index":"/a[2]","iframe":true,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0},{"nodeType":4,"contentType":1,"relative":true,"name":"参数6_图片地址","desc":"","relativeXPath":"/a[2]/img[1]","allXPaths":["/a[2]/img[1]","//img[contains(., '')]","/html/body/p[last()-2]/a/img"],"exampleValues":[{"num":0,"value":"https://6.ipchaxun.net/220.255.29.208.gif"}],"unique_index":"/a[2]/img[1]","iframe":true,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0},{"nodeType":0,"contentType":1,"relative":true,"name":"参数7_文本","desc":"","relativeXPath":"/a[1]/font[1]","allXPaths":["/a[1]/font[1]","//font[contains(., 'ip查询api接口')]","/html/body/p[last()-1]/a/font"],"exampleValues":[{"num":1,"value":"ip查询api接口"}],"unique_index":"/a[1]/font[1]","iframe":true,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0}],"loopType":1}}]} \ No newline at end of file diff --git a/ElectronJS/tasks/118.json b/ElectronJS/tasks/118.json index 3041d68..166ed1f 100644 --- a/ElectronJS/tasks/118.json +++ b/ElectronJS/tasks/118.json @@ -1,379 +1 @@ -{ - "id": 118, - "name": "iP地址查询--手机号码查询归属地 | 邮政编码查询 | iP地址归属地查询 | 身份证号码验证在线查询网", - "url": "https://www.ip138.com", - "links": "https://www.ip138.com", - "create_time": "7/4/2023, 8:43:31 AM", - "version": "0.3.5", - "saveThreshold": 10, - "cloudflare": 0, - "environment": 0, - "containJudge": false, - "desc": "https://www.ip138.com", - "inputParameters": [ - { - "id": 0, - "name": "urlList_0", - "nodeId": 1, - "nodeName": "打开网页", - "value": "https://www.ip138.com", - "desc": "要采集的网址列表,多行以\\n分开", - "type": "string", - "exampleValue": "https://www.ip138.com" - } - ], - "outputParameters": [ - { - "id": 0, - "name": "参数1_文本", - "desc": "", - "type": "string", - "exampleValue": "502 Bad Gateway" - } - ], - "graph": [ - { - "index": 0, - "id": 0, - "parentId": 0, - "type": -1, - "option": 0, - "title": "root", - "sequence": [1, 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, - "waitType": 0, - "beforeJS": "", - "beforeJSWaitTime": 0, - "afterJS": "", - "afterJSWaitTime": 0, - "url": "https://www.ip138.com", - "links": "https://www.ip138.com", - "maxWaitTime": 10, - "scrollType": 0, - "scrollCount": 1, - "scrollWaitTime": 1 - } - }, - { - "id": -1, - "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/p", - "iframe": true, - "wait": 0, - "waitType": 0, - "beforeJS": "", - "beforeJSWaitTime": 0, - "afterJS": "", - "afterJSWaitTime": 0, - "scrollType": 0, - "scrollCount": 1, - "scrollWaitTime": 1, - "loopType": 1, - "pathList": "", - "textList": "", - "code": "", - "waitTime": 0, - "exitCount": 0, - "historyWait": 2, - "breakMode": 0, - "breakCode": "", - "breakCodeWaitTime": 0, - "allXPaths": [ - "/html/body/p[1]", - "//p[contains(., '您的iP地址是:[')]", - "/html/body/p[last()-2]" - ] - } - }, - { - "id": -1, - "index": 3, - "parentId": 2, - "type": 0, - "option": 3, - "title": "提取数据", - "sequence": [], - "isInLoop": true, - "position": 0, - "parameters": { - "history": 4, - "tabIndex": -1, - "useLoop": false, - "xpath": "", - "iframe": true, - "wait": 0, - "waitType": 0, - "beforeJS": "", - "beforeJSWaitTime": 0, - "afterJS": "", - "afterJSWaitTime": 0, - "paras": [ - { - "nodeType": 0, - "contentType": 1, - "relative": true, - "name": "参数1_文本", - "desc": "", - "relativeXPath": "", - "allXPaths": [ - "", - "//p[contains(., '您的iP地址是:[')]", - "/html/body/p[last()-2]" - ], - "exampleValues": [ - { "num": 0, "value": "您的iP地址是:[]来自:新加坡Singtel" } - ], - "unique_index": "", - "iframe": true, - "default": "", - "beforeJS": "", - "beforeJSWaitTime": 0, - "JS": "", - "JSWaitTime": 0, - "afterJS": "", - "afterJSWaitTime": 0, - "downloadPic": 0 - }, - { - "nodeType": 1, - "contentType": 0, - "relative": true, - "name": "参数2_链接文本", - "desc": "", - "relativeXPath": "/a[1]", - "allXPaths": [ - "/a[1]", - "//a[contains(., '220.255.29')]", - "/html/body/p[last()-2]/a[last()-1]" - ], - "exampleValues": [{ "num": 0, "value": "220.255.29.208" }], - "unique_index": "/a[1]", - "iframe": true, - "default": "", - "beforeJS": "", - "beforeJSWaitTime": 0, - "JS": "", - "JSWaitTime": 0, - "afterJS": "", - "afterJSWaitTime": 0, - "downloadPic": 0 - }, - { - "nodeType": 2, - "contentType": 0, - "relative": true, - "name": "参数3_链接地址", - "desc": "", - "relativeXPath": "/a[1]", - "allXPaths": [ - "/a[1]", - "//a[contains(., '220.255.29')]", - "/html/body/p[last()-2]/a[last()-1]" - ], - "exampleValues": [ - { - "num": 0, - "value": "https://www.ip138.com/iplookup.php?ip=220.255.29.208&action=2" - } - ], - "unique_index": "/a[1]", - "iframe": true, - "default": "", - "beforeJS": "", - "beforeJSWaitTime": 0, - "JS": "", - "JSWaitTime": 0, - "afterJS": "", - "afterJSWaitTime": 0, - "downloadPic": 0 - }, - { - "nodeType": 1, - "contentType": 0, - "relative": true, - "name": "参数4_链接文本", - "desc": "", - "relativeXPath": "/a[2]", - "allXPaths": [ - "/a[2]", - "//a[contains(., '')]", - "/html/body/p[last()-2]/a" - ], - "exampleValues": [{ "num": 0, "value": "" }], - "unique_index": "/a[2]", - "iframe": true, - "default": "", - "beforeJS": "", - "beforeJSWaitTime": 0, - "JS": "", - "JSWaitTime": 0, - "afterJS": "", - "afterJSWaitTime": 0, - "downloadPic": 0 - }, - { - "nodeType": 2, - "contentType": 0, - "relative": true, - "name": "参数5_链接地址", - "desc": "", - "relativeXPath": "/a[2]", - "allXPaths": [ - "/a[2]", - "//a[contains(., '')]", - "/html/body/p[last()-2]/a" - ], - "exampleValues": [ - { "num": 0, "value": "https://www.ipshudi.com/" } - ], - "unique_index": "/a[2]", - "iframe": true, - "default": "", - "beforeJS": "", - "beforeJSWaitTime": 0, - "JS": "", - "JSWaitTime": 0, - "afterJS": "", - "afterJSWaitTime": 0, - "downloadPic": 0 - }, - { - "nodeType": 4, - "contentType": 1, - "relative": true, - "name": "参数6_图片地址", - "desc": "", - "relativeXPath": "/a[2]/img[1]", - "allXPaths": [ - "/a[2]/img[1]", - "//img[contains(., '')]", - "/html/body/p[last()-2]/a/img" - ], - "exampleValues": [ - { "num": 0, "value": "https://6.ipchaxun.net/220.255.29.208.gif" } - ], - "unique_index": "/a[2]/img[1]", - "iframe": true, - "default": "", - "beforeJS": "", - "beforeJSWaitTime": 0, - "JS": "", - "JSWaitTime": 0, - "afterJS": "", - "afterJSWaitTime": 0, - "downloadPic": 0 - }, - { - "nodeType": 0, - "contentType": 1, - "relative": true, - "name": "参数7_文本", - "desc": "", - "relativeXPath": "/a[1]/font[1]", - "allXPaths": [ - "/a[1]/font[1]", - "//font[contains(., 'ip查询api接口')]", - "/html/body/p[last()-1]/a/font" - ], - "exampleValues": [{ "num": 1, "value": "ip查询api接口" }], - "unique_index": "/a[1]/font[1]", - "iframe": true, - "default": "", - "beforeJS": "", - "beforeJSWaitTime": 0, - "JS": "", - "JSWaitTime": 0, - "afterJS": "", - "afterJSWaitTime": 0, - "downloadPic": 0 - } - ], - "loopType": 1 - } - }, - { - "id": 2, - "index": 4, - "parentId": 0, - "type": 0, - "option": 3, - "title": "提取数据", - "sequence": [], - "isInLoop": false, - "position": 1, - "parameters": { - "history": 3, - "tabIndex": -1, - "useLoop": false, - "xpath": "", - "iframe": true, - "wait": 0, - "waitType": 0, - "beforeJS": "", - "beforeJSWaitTime": 0, - "afterJS": "", - "afterJSWaitTime": 0, - "paras": [ - { - "nodeType": 0, - "contentType": 0, - "relative": false, - "name": "参数1_文本", - "desc": "", - "extractType": 0, - "relativeXPath": "/html/body/center[1]/h1[1]", - "allXPaths": [ - "/html/body/center[1]/h1[1]", - "//h1[contains(., '502 Bad Ga')]", - "/html/body/center[last()-1]/h1" - ], - "exampleValues": [{ "num": 0, "value": "502 Bad Gateway" }], - "unique_index": "l37gwwpsg29ljnkgn7r", - "iframe": true, - "default": "", - "beforeJS": "", - "beforeJSWaitTime": 0, - "JS": "", - "JSWaitTime": 0, - "afterJS": "", - "afterJSWaitTime": 0, - "downloadPic": 0 - } - ] - } - } - ] -} +{"id":118,"name":"iP地址查询 502","url":"https://www.ip138.com","links":"https://www.ip138.com","create_time":"7/4/2023, 7:41:22 PM","version":"0.3.5","saveThreshold":10,"cloudflare":0,"environment":0,"containJudge":false,"desc":"https://www.ip138.com","inputParameters":[{"id":0,"name":"urlList_0","nodeId":1,"nodeName":"打开网页","value":"https://www.ip138.com","desc":"要采集的网址列表,多行以\\n分开","type":"string","exampleValue":"https://www.ip138.com"}],"outputParameters":[{"id":0,"name":"参数1_文本","desc":"","type":"string","exampleValue":"502 Bad Gateway"}],"graph":[{"index":0,"id":0,"parentId":0,"type":-1,"option":0,"title":"root","sequence":[1,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,"waitType":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"url":"https://www.ip138.com","links":"https://www.ip138.com","maxWaitTime":10,"scrollType":0,"scrollCount":1,"scrollWaitTime":1}},{"id":-1,"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/p","iframe":true,"wait":0,"waitType":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"scrollType":0,"scrollCount":1,"scrollWaitTime":1,"loopType":1,"pathList":"","textList":"","code":"","waitTime":0,"exitCount":0,"historyWait":2,"breakMode":0,"breakCode":"","breakCodeWaitTime":0,"allXPaths":["/html/body/p[1]","//p[contains(., '您的iP地址是:[')]","/html/body/p[last()-2]"]}},{"id":-1,"index":3,"parentId":2,"type":0,"option":3,"title":"提取数据","sequence":[],"isInLoop":true,"position":0,"parameters":{"history":4,"tabIndex":-1,"useLoop":false,"xpath":"","iframe":true,"wait":0,"waitType":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"paras":[{"nodeType":0,"contentType":1,"relative":true,"name":"参数1_文本","desc":"","relativeXPath":"","allXPaths":["","//p[contains(., '您的iP地址是:[')]","/html/body/p[last()-2]"],"exampleValues":[{"num":0,"value":"您的iP地址是:[]来自:新加坡Singtel"}],"unique_index":"","iframe":true,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0},{"nodeType":1,"contentType":0,"relative":true,"name":"参数2_链接文本","desc":"","relativeXPath":"/a[1]","allXPaths":["/a[1]","//a[contains(., '220.255.29')]","/html/body/p[last()-2]/a[last()-1]"],"exampleValues":[{"num":0,"value":"220.255.29.208"}],"unique_index":"/a[1]","iframe":true,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0},{"nodeType":2,"contentType":0,"relative":true,"name":"参数3_链接地址","desc":"","relativeXPath":"/a[1]","allXPaths":["/a[1]","//a[contains(., '220.255.29')]","/html/body/p[last()-2]/a[last()-1]"],"exampleValues":[{"num":0,"value":"https://www.ip138.com/iplookup.php?ip=220.255.29.208&action=2"}],"unique_index":"/a[1]","iframe":true,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0},{"nodeType":1,"contentType":0,"relative":true,"name":"参数4_链接文本","desc":"","relativeXPath":"/a[2]","allXPaths":["/a[2]","//a[contains(., '')]","/html/body/p[last()-2]/a"],"exampleValues":[{"num":0,"value":""}],"unique_index":"/a[2]","iframe":true,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0},{"nodeType":2,"contentType":0,"relative":true,"name":"参数5_链接地址","desc":"","relativeXPath":"/a[2]","allXPaths":["/a[2]","//a[contains(., '')]","/html/body/p[last()-2]/a"],"exampleValues":[{"num":0,"value":"https://www.ipshudi.com/"}],"unique_index":"/a[2]","iframe":true,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0},{"nodeType":4,"contentType":1,"relative":true,"name":"参数6_图片地址","desc":"","relativeXPath":"/a[2]/img[1]","allXPaths":["/a[2]/img[1]","//img[contains(., '')]","/html/body/p[last()-2]/a/img"],"exampleValues":[{"num":0,"value":"https://6.ipchaxun.net/220.255.29.208.gif"}],"unique_index":"/a[2]/img[1]","iframe":true,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0},{"nodeType":0,"contentType":1,"relative":true,"name":"参数7_文本","desc":"","relativeXPath":"/a[1]/font[1]","allXPaths":["/a[1]/font[1]","//font[contains(., 'ip查询api接口')]","/html/body/p[last()-1]/a/font"],"exampleValues":[{"num":1,"value":"ip查询api接口"}],"unique_index":"/a[1]/font[1]","iframe":true,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0}],"loopType":1}},{"id":2,"index":4,"parentId":0,"type":0,"option":3,"title":"提取数据","sequence":[],"isInLoop":false,"position":1,"parameters":{"history":3,"tabIndex":-1,"useLoop":false,"xpath":"","iframe":true,"wait":0,"waitType":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"paras":[{"nodeType":0,"contentType":0,"relative":false,"name":"参数1_文本","desc":"","extractType":0,"relativeXPath":"/html/body/center[1]/h1[1]","allXPaths":["/html/body/center[1]/h1[1]","//h1[contains(., '502 Bad Ga')]","/html/body/center[last()-1]/h1"],"exampleValues":[{"num":0,"value":"502 Bad Gateway"}],"unique_index":"l37gwwpsg29ljnkgn7r","iframe":true,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0}]}}]} \ No newline at end of file diff --git a/ElectronJS/tasks/124.json b/ElectronJS/tasks/124.json new file mode 100644 index 0000000..81ba39f --- /dev/null +++ b/ElectronJS/tasks/124.json @@ -0,0 +1 @@ +{"id":124,"name":"Dynamic Iframe","url":"https://www.easyspider.cn/iframe.html","links":"https://www.easyspider.cn/iframe.html","create_time":"7/4/2023, 8:25:10 PM","version":"0.3.5","saveThreshold":10,"cloudflare":0,"environment":0,"containJudge":false,"desc":"https://www.easyspider.cn/iframe.html","inputParameters":[{"id":0,"name":"urlList_0","nodeId":1,"nodeName":"打开网页","value":"https://www.easyspider.cn/iframe.html","desc":"要采集的网址列表,多行以\\n分开","type":"string","exampleValue":"https://www.easyspider.cn/iframe.html"}],"outputParameters":[{"id":0,"name":"参数1_文本","desc":"","type":"string","exampleValue":"IFRAME TEST"},{"id":1,"name":"参数2_链接地址","desc":"","type":"string","exampleValue":"https://github.com/NaiboWang/EasySpider/wiki"},{"id":2,"name":"参数3_文本","desc":"","type":"string","exampleValue":"Row 1, Cell 1"},{"id":3,"name":"参数4_文本","desc":"","type":"string","exampleValue":"EasySpider: Visual Web Crawler"},{"id":4,"name":"参数5_文本","desc":"","type":"string","exampleValue":"Row1,Cell1"},{"id":5,"name":"参数6_文本","desc":"","type":"string","exampleValue":"Row1,Cell2"},{"id":6,"name":"参数7_文本","desc":"","type":"string","exampleValue":"Header1"},{"id":7,"name":"参数8_文本","desc":"","type":"string","exampleValue":"Header2"},{"id":8,"name":"参数10_文本","desc":"","type":"string","exampleValue":"IFRAME TEST"},{"id":9,"name":"参数11_文本","desc":"","type":"string","exampleValue":"Designandexecutewebscrapingtasksvisually,justlikeusingExcel,regardlessofcodingexperience."}],"graph":[{"index":0,"id":0,"parentId":0,"type":-1,"option":0,"title":"root","sequence":[1,8,9,11],"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,"waitType":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"url":"https://www.easyspider.cn/iframe.html","links":"https://www.easyspider.cn/iframe.html","maxWaitTime":10,"scrollType":0,"scrollCount":1,"scrollWaitTime":1}},{"id":-1,"index":2,"parentId":0,"type":0,"option":3,"title":"提取数据","sequence":[],"isInLoop":false,"position":1,"parameters":{"history":4,"tabIndex":-1,"useLoop":false,"xpath":"","iframe":false,"wait":0,"waitType":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"paras":[{"nodeType":0,"contentType":0,"relative":false,"name":"参数1_文本","desc":"","extractType":0,"relativeXPath":"/html/body/h1[1]","allXPaths":["/html/body/h1[1]","//h1[contains(., 'IFRAME TES')]","/html/body/h1"],"exampleValues":[{"num":0,"value":"IFRAME TEST"}],"unique_index":"c5t4uk4z7juljo8jmu7","iframe":false,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0}]}},{"id":-1,"index":3,"parentId":0,"type":1,"option":8,"title":"循环","sequence":[4],"isInLoop":false,"position":1,"parameters":{"history":4,"tabIndex":-1,"useLoop":false,"xpath":"/html/body/table[1]/tbody[1]/tr","iframe":false,"wait":0,"waitType":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"scrollType":0,"scrollCount":1,"scrollWaitTime":1,"loopType":1,"pathList":"","textList":"","code":"","waitTime":0,"exitCount":0,"historyWait":2,"breakMode":0,"breakCode":"","breakCodeWaitTime":0,"allXPaths":["/html/body/table[1]/tbody[1]/tr[1]","//tr[contains(., '')]","/html/body/table/tbody/tr[last()-2]"]}},{"id":-1,"index":4,"parentId":2,"type":0,"option":3,"title":"提取数据","sequence":[],"isInLoop":true,"position":0,"parameters":{"history":4,"tabIndex":-1,"useLoop":false,"xpath":"","iframe":false,"wait":0,"waitType":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"paras":[{"nodeType":0,"contentType":1,"relative":true,"name":"参数1_文本","desc":"","relativeXPath":"/td[1]","allXPaths":["/td[1]","//td[contains(., 'Row 1, Cel')]","/html/body/table/tbody/tr[last()-1]/td[last()-1]"],"exampleValues":[{"num":0,"value":"Row1,Cell1"}],"unique_index":"/td[1]","iframe":false,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0},{"nodeType":0,"contentType":1,"relative":true,"name":"参数2_文本","desc":"","relativeXPath":"/td[2]","allXPaths":["/td[2]","//td[contains(., 'Row 1, Cel')]","/html/body/table/tbody/tr[last()-1]/td"],"exampleValues":[{"num":0,"value":"Row1,Cell2"}],"unique_index":"/td[2]","iframe":false,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0},{"nodeType":0,"contentType":1,"relative":true,"name":"参数3_文本","desc":"","relativeXPath":"/th[1]","allXPaths":["/th[1]","//th[contains(., 'Header 1')]","/html/body/table/tbody/tr[last()-2]/th[last()-1]"],"exampleValues":[{"num":1,"value":"Header1"}],"unique_index":"/th[1]","iframe":false,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0},{"nodeType":0,"contentType":1,"relative":true,"name":"参数4_文本","desc":"","relativeXPath":"/th[2]","allXPaths":["/th[2]","//th[contains(., 'Header 2')]","/html/body/table/tbody/tr[last()-2]/th"],"exampleValues":[{"num":1,"value":"Header2"}],"unique_index":"/th[2]","iframe":false,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0}],"loopType":1}},{"id":-1,"index":5,"parentId":0,"type":0,"option":3,"title":"提取数据","sequence":[],"isInLoop":false,"position":1,"parameters":{"history":4,"tabIndex":-1,"useLoop":false,"xpath":"","iframe":true,"wait":0,"waitType":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"paras":[{"nodeType":0,"contentType":0,"relative":false,"name":"参数1_文本","desc":"","extractType":0,"relativeXPath":"/html/body/div[2]/div[1]/div[1]/ul[1]/li[1]","allXPaths":["/html/body/div[2]/div[1]/div[1]/ul[1]/li[1]","//li[contains(., 'Home')]","//LI[@class='nav-item']","/html/body/div[last()-7]/div/div/ul/li[last()-5]"],"exampleValues":[{"num":0,"value":"Home"}],"unique_index":"gvkh1kd9fd8ljo8k8qg","iframe":true,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0}]}},{"id":-1,"index":6,"parentId":0,"type":1,"option":8,"title":"循环","sequence":[7],"isInLoop":false,"position":1,"parameters":{"history":4,"tabIndex":-1,"useLoop":false,"xpath":"/html/body/div[3]/div[1]/div","iframe":true,"wait":0,"waitType":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"scrollType":0,"scrollCount":1,"scrollWaitTime":1,"loopType":1,"pathList":"","textList":"","code":"","waitTime":0,"exitCount":0,"historyWait":2,"breakMode":0,"breakCode":"","breakCodeWaitTime":0,"allXPaths":["/html/body/div[3]/div[1]/div[1]","//div[contains(., '')]","//DIV[@class='func-item']","/html/body/div[last()-6]/div/div[last()-2]"]}},{"id":-1,"index":7,"parentId":2,"type":0,"option":3,"title":"提取数据","sequence":[],"isInLoop":true,"position":0,"parameters":{"history":4,"tabIndex":-1,"useLoop":false,"xpath":"","iframe":true,"wait":0,"waitType":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"paras":[{"nodeType":0,"contentType":1,"relative":true,"name":"参数1_文本","desc":"","relativeXPath":"/div[2]","allXPaths":["/div[2]","//div[contains(., 'Suitable f')]","//DIV[@class='func-title']","/html/body/div[last()-6]/div/div[last()-2]/div[last()-1]"],"exampleValues":[{"num":0,"value":"SuitableforAnyoneintheWorkplace"}],"unique_index":"/div[2]","iframe":true,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0},{"nodeType":0,"contentType":1,"relative":true,"name":"参数2_文本","desc":"","relativeXPath":"/div[3]","allXPaths":["/div[3]","//div[contains(., 'Design and')]","//DIV[@class='func-desc']","/html/body/div[last()-6]/div/div[last()-2]/div"],"exampleValues":[{"num":0,"value":"Designandexecutewebscrapingtasksvisually,justlikeusingExcel,regardlessofcodingexperience."}],"unique_index":"/div[3]","iframe":true,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0}]}},{"id":2,"index":8,"parentId":0,"type":0,"option":3,"title":"提取数据","sequence":[],"isInLoop":false,"position":1,"parameters":{"history":3,"tabIndex":-1,"useLoop":false,"xpath":"","iframe":false,"wait":0,"waitType":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"paras":[{"nodeType":0,"contentType":0,"relative":false,"name":"参数1_文本","desc":"","extractType":0,"relativeXPath":"/html/body/h1[1]","allXPaths":["/html/body/h1[1]","//h1[contains(., 'IFRAME TES')]","/html/body/h1"],"exampleValues":[{"num":0,"value":"IFRAME TEST"}],"unique_index":"jamaji3jfhljo94msg","iframe":false,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0},{"nodeType":2,"contentType":0,"relative":false,"name":"参数2_链接地址","desc":"","relativeXPath":"/html/body/div[2]/div[1]/div[1]/ul[1]/li[2]/a[1]","allXPaths":["/html/body/div[2]/div[1]/div[1]/ul[1]/li[2]/a[1]","//a[contains(., 'Documentat')]","/html/body/div[last()-7]/div/div/ul/li[last()-4]/a"],"exampleValues":[{"num":0,"value":"https://github.com/NaiboWang/EasySpider/wiki"}],"unique_index":"bud5cdkjta7ljo94wf8","iframe":true,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0},{"nodeType":0,"contentType":0,"relative":false,"name":"参数3_文本","desc":"","extractType":0,"relativeXPath":"/html/body/table[1]/tbody[1]/tr[2]/td[1]","allXPaths":["/html/body/table[1]/tbody[1]/tr[2]/td[1]","//td[contains(., 'Row 1, Cel')]","/html/body/table/tbody/tr[last()-1]/td[last()-1]"],"exampleValues":[{"num":0,"value":"Row 1, Cell 1"}],"unique_index":"wvcxdwkrvutljo954sk","iframe":false,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0},{"nodeType":0,"contentType":0,"relative":false,"name":"参数4_文本","desc":"","extractType":0,"relativeXPath":"/html/body/div[1]/div[1]/div[1]/div[1]","allXPaths":["/html/body/div[1]/div[1]/div[1]/div[1]","//div[contains(., 'EasySpider')]","//DIV[@class='move-title']","/html/body/div[last()-8]/div/div[last()-2]/div[last()-4]"],"exampleValues":[{"num":0,"value":"EasySpider: Visual Web Crawler"}],"unique_index":"a2i77k15454ljo958tg","iframe":true,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0}]}},{"id":3,"index":9,"parentId":0,"type":1,"option":8,"title":"循环","sequence":[10],"isInLoop":false,"position":2,"parameters":{"history":3,"tabIndex":-1,"useLoop":false,"xpath":"/html/body/table[1]/tbody[1]/tr","iframe":false,"wait":0,"waitType":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"scrollType":0,"scrollCount":1,"scrollWaitTime":1,"loopType":1,"pathList":"","textList":"","code":"","waitTime":0,"exitCount":0,"historyWait":2,"breakMode":0,"breakCode":"","breakCodeWaitTime":0,"allXPaths":["/html/body/table[1]/tbody[1]/tr[1]","//tr[contains(., '')]","/html/body/table/tbody/tr[last()-2]"]}},{"id":5,"index":10,"parentId":3,"type":0,"option":3,"title":"提取数据","sequence":[],"isInLoop":true,"position":0,"parameters":{"history":3,"tabIndex":-1,"useLoop":false,"xpath":"","iframe":false,"wait":0,"waitType":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"paras":[{"nodeType":0,"contentType":1,"relative":true,"name":"参数5_文本","desc":"","relativeXPath":"/td[1]","allXPaths":["/td[1]","//td[contains(., 'Row 1, Cel')]","/html/body/table/tbody/tr[last()-1]/td[last()-1]"],"exampleValues":[{"num":0,"value":"Row1,Cell1"}],"unique_index":"/td[1]","iframe":false,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0},{"nodeType":0,"contentType":1,"relative":true,"name":"参数6_文本","desc":"","relativeXPath":"/td[2]","allXPaths":["/td[2]","//td[contains(., 'Row 1, Cel')]","/html/body/table/tbody/tr[last()-1]/td"],"exampleValues":[{"num":0,"value":"Row1,Cell2"}],"unique_index":"/td[2]","iframe":false,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0},{"nodeType":0,"contentType":1,"relative":true,"name":"参数7_文本","desc":"","relativeXPath":"/th[1]","allXPaths":["/th[1]","//th[contains(., 'Header 1')]","/html/body/table/tbody/tr[last()-2]/th[last()-1]"],"exampleValues":[{"num":1,"value":"Header1"}],"unique_index":"/th[1]","iframe":false,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0},{"nodeType":0,"contentType":1,"relative":true,"name":"参数8_文本","desc":"","relativeXPath":"/th[2]","allXPaths":["/th[2]","//th[contains(., 'Header 2')]","/html/body/table/tbody/tr[last()-2]/th"],"exampleValues":[{"num":1,"value":"Header2"}],"unique_index":"/th[2]","iframe":false,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0},{"nodeType":0,"contentType":0,"relative":false,"name":"参数10_文本","desc":"","extractType":0,"relativeXPath":"/html/body/h1[1]","allXPaths":["/html/body/h1[1]","//h1[contains(., 'IFRAME TES')]","/html/body/h1"],"exampleValues":[{"num":0,"value":"IFRAME TEST"}],"unique_index":"hm0p4o1gussljo973rk","iframe":false,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0}]}},{"id":4,"index":11,"parentId":0,"type":1,"option":8,"title":"循环","sequence":[12],"isInLoop":false,"position":3,"parameters":{"history":3,"tabIndex":-1,"useLoop":false,"xpath":"/html/body/div[3]/div[1]/div","iframe":true,"wait":0,"waitType":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"scrollType":0,"scrollCount":1,"scrollWaitTime":1,"loopType":1,"pathList":"","textList":"","code":"","waitTime":0,"exitCount":0,"historyWait":2,"breakMode":0,"breakCode":"","breakCodeWaitTime":0,"allXPaths":["/html/body/div[3]/div[1]/div[1]","//div[contains(., '')]","//DIV[@class='func-item']","/html/body/div[last()-6]/div/div[last()-2]"]}},{"id":6,"index":12,"parentId":4,"type":0,"option":3,"title":"提取数据","sequence":[],"isInLoop":true,"position":0,"parameters":{"history":3,"tabIndex":-1,"useLoop":false,"xpath":"","iframe":true,"wait":0,"waitType":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"paras":[{"nodeType":0,"contentType":1,"relative":true,"name":"参数10_文本","desc":"","relativeXPath":"/div[2]","allXPaths":["/div[2]","//div[contains(., 'Suitable f')]","//DIV[@class='func-title']","/html/body/div[last()-6]/div/div[last()-2]/div[last()-1]"],"exampleValues":[{"num":0,"value":"SuitableforAnyoneintheWorkplace"}],"unique_index":"/div[2]","iframe":true,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0},{"nodeType":0,"contentType":1,"relative":true,"name":"参数11_文本","desc":"","relativeXPath":"/div[3]","allXPaths":["/div[3]","//div[contains(., 'Design and')]","//DIV[@class='func-desc']","/html/body/div[last()-6]/div/div[last()-2]/div"],"exampleValues":[{"num":0,"value":"Designandexecutewebscrapingtasksvisually,justlikeusingExcel,regardlessofcodingexperience."}],"unique_index":"/div[3]","iframe":true,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0}]}}]} \ No newline at end of file diff --git a/ElectronJS/tasks/125.json b/ElectronJS/tasks/125.json new file mode 100644 index 0000000..6691189 --- /dev/null +++ b/ElectronJS/tasks/125.json @@ -0,0 +1 @@ +{"id":125,"name":"Dynamic Iframe","url":"http://localhost:8074/taskGrid/test_pages/iframe.html?address=http://www.ceic.ac.cn/history","links":"http://localhost:8074/taskGrid/test_pages/iframe.html?address=http://www.ceic.ac.cn/history","create_time":"7/4/2023, 9:08:15 PM","version":"0.3.5","saveThreshold":10,"cloudflare":0,"environment":0,"containJudge":false,"desc":"http://localhost:8074/taskGrid/test_pages/iframe.html?address=http://www.ceic.ac.cn/history","inputParameters":[{"id":0,"name":"urlList_0","nodeId":1,"nodeName":"打开网页","value":"http://localhost:8074/taskGrid/test_pages/iframe.html?address=http://www.ceic.ac.cn/history","desc":"要采集的网址列表,多行以\\n分开","type":"string","exampleValue":"http://localhost:8074/taskGrid/test_pages/iframe.html?address=http://www.ceic.ac.cn/history"},{"id":1,"name":"inputText_1","nodeName":"输入文字","nodeId":6,"desc":"要输入的文本,如京东搜索框输入:电脑","type":"string","exampleValue":"12","value":"12"},{"id":2,"name":"loopTimes_循环1_2","nodeId":8,"nodeName":"循环1","desc":"循环循环1执行的次数(0代表无限循环)","type":"int","exampleValue":0,"value":0}],"outputParameters":[{"id":0,"name":"参数1_文本","desc":"","type":"string","exampleValue":"2.2"},{"id":1,"name":"参数2_文本","desc":"","type":"string","exampleValue":"2023-06-1422:24:41"},{"id":2,"name":"参数3_文本","desc":"","type":"string","exampleValue":"37.12"},{"id":3,"name":"参数4_文本","desc":"","type":"string","exampleValue":"114.78"},{"id":4,"name":"参数5_文本","desc":"","type":"string","exampleValue":"10"},{"id":5,"name":"参数6_链接文本","desc":"","type":"string","exampleValue":"河北邢台市任泽区"},{"id":6,"name":"参数7_链接地址","desc":"","type":"string","exampleValue":"https://news.ceic.ac.cn/CD20230614222441.html"},{"id":7,"name":"参数8_文本","desc":"","type":"string","exampleValue":"震级(M)"},{"id":8,"name":"参数9_文本","desc":"","type":"string","exampleValue":"发震时刻(UTC+8)"},{"id":9,"name":"参数10_文本","desc":"","type":"string","exampleValue":"纬度(°)"},{"id":10,"name":"参数11_文本","desc":"","type":"string","exampleValue":"经度(°)"},{"id":11,"name":"参数12_文本","desc":"","type":"string","exampleValue":"深度(千米)"},{"id":12,"name":"参数13_文本","desc":"","type":"string","exampleValue":"参考位置"},{"id":13,"name":"参数111_文本","desc":"","type":"string","exampleValue":"IFRAME TEST"}],"graph":[{"index":0,"id":0,"parentId":0,"type":-1,"option":0,"title":"root","sequence":[1,6,7,12,8],"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":10,"waitType":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"url":"http://localhost:8074/taskGrid/test_pages/iframe.html?address=http://www.ceic.ac.cn/history","links":"http://localhost:8074/taskGrid/test_pages/iframe.html?address=http://www.ceic.ac.cn/history","maxWaitTime":10,"scrollType":0,"scrollCount":1,"scrollWaitTime":1}},{"id":-1,"index":2,"parentId":0,"type":0,"option":4,"title":"输入文字","sequence":[],"isInLoop":false,"position":1,"parameters":{"history":5,"tabIndex":-1,"useLoop":false,"xpath":"//*[@id=\"weidu1\"]","iframe":true,"wait":0,"waitType":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"value":"15","allXPaths":["/html/body/div[1]/div[3]/div[1]/div[1]/div[1]/form[1]/div[2]/input[1]","//input[contains(., '')]","id(\"weidu1\")","//INPUT[@class='span1']","//INPUT[@name='weidu1']","/html/body/div[last()-3]/div[last()-1]/div/div/div[last()-1]/form/div[last()-3]/input[last()-1]"]}},{"id":-1,"index":3,"parentId":0,"type":0,"option":2,"title":"点击元素","sequence":[],"isInLoop":false,"position":2,"parameters":{"history":5,"tabIndex":-1,"useLoop":false,"xpath":"//*[@id=\"search\"]","iframe":true,"wait":2,"waitType":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"scrollType":0,"scrollCount":1,"scrollWaitTime":1,"clickWay":0,"maxWaitTime":10,"paras":[],"allXPaths":["/html/body/div[1]/div[3]/div[1]/div[1]/div[1]/form[1]/div[5]/a[1]","//a[contains(., '查询')]","id(\"search\")","//A[@class='check']","/html/body/div[last()-3]/div[last()-1]/div/div/div[last()-1]/form/div/a"]}},{"id":-1,"index":4,"parentId":0,"type":0,"option":4,"title":"输入文字","sequence":[],"isInLoop":false,"position":1,"parameters":{"history":6,"tabIndex":-1,"useLoop":false,"xpath":"//*[@id=\"weidu1\"]","iframe":true,"wait":0,"waitType":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"value":"11","allXPaths":["/html/body/div[1]/div[3]/div[1]/div[1]/div[1]/form[1]/div[2]/input[1]","//input[contains(., '')]","id(\"weidu1\")","//INPUT[@class='span1']","//INPUT[@name='weidu1']","/html/body/div[last()-3]/div[last()-1]/div/div/div[last()-1]/form/div[last()-3]/input[last()-1]"]}},{"id":-1,"index":5,"parentId":0,"type":0,"option":4,"title":"输入文字","sequence":[],"isInLoop":false,"position":1,"parameters":{"history":6,"tabIndex":-1,"useLoop":false,"xpath":"//*[@id=\"weidu1\"]","iframe":true,"wait":0,"waitType":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"value":"123","allXPaths":["/html/body/div[1]/div[3]/div[1]/div[1]/div[1]/form[1]/div[2]/input[1]","//input[contains(., '')]","id(\"weidu1\")","//INPUT[@class='span1']","//INPUT[@name='weidu1']","/html/body/div[last()-3]/div[last()-1]/div/div/div[last()-1]/form/div[last()-3]/input[last()-1]"]}},{"id":2,"index":6,"parentId":0,"type":0,"option":4,"title":"输入文字","sequence":[],"isInLoop":false,"position":1,"parameters":{"history":4,"tabIndex":-1,"useLoop":false,"xpath":"//*[@id=\"weidu1\"]","iframe":true,"wait":0,"waitType":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"value":"12","allXPaths":["/html/body/div[1]/div[3]/div[1]/div[1]/div[1]/form[1]/div[2]/input[1]","//input[contains(., '')]","id(\"weidu1\")","//INPUT[@class='span1']","//INPUT[@name='weidu1']","/html/body/div[last()-3]/div[last()-1]/div/div/div[last()-1]/form/div[last()-3]/input[last()-1]"]}},{"id":3,"index":7,"parentId":0,"type":0,"option":2,"title":"点击元素","sequence":[],"isInLoop":false,"position":2,"parameters":{"history":4,"tabIndex":-1,"useLoop":false,"xpath":"//*[@id=\"search\"]","iframe":true,"wait":2,"waitType":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"scrollType":0,"scrollCount":1,"scrollWaitTime":1,"clickWay":0,"maxWaitTime":10,"paras":[],"allXPaths":["/html/body/div[1]/div[3]/div[1]/div[1]/div[1]/form[1]/div[5]/a[1]","//a[contains(., '查询')]","id(\"search\")","//A[@class='check']","/html/body/div[last()-3]/div[last()-1]/div/div/div[last()-1]/form/div/a"]}},{"id":5,"index":8,"parentId":0,"type":1,"option":8,"title":"循环1","sequence":[10,9],"isInLoop":false,"position":4,"parameters":{"history":4,"tabIndex":-1,"useLoop":false,"xpath":"//*[contains(@class, \"pagination\")]/ul[1]/li[last()-1]/a[1]","iframe":true,"wait":0,"waitType":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"scrollType":0,"scrollCount":1,"scrollWaitTime":1,"loopType":0,"pathList":"","textList":"","code":"","waitTime":0,"exitCount":0,"historyWait":2,"breakMode":0,"breakCode":"","breakCodeWaitTime":0,"allXPaths":["/html/body/div[1]/div[3]/div[1]/div[1]/div[2]/div[1]/div[2]/div[1]/div[1]/ul[1]/li[12]/a[1]","//a[contains(., '»')]","/html/body/div[last()-3]/div[last()-1]/div/div/div/div/div/div/div/ul/li[last()-1]/a"]}},{"id":7,"index":9,"parentId":5,"type":0,"option":2,"title":"点击元素","sequence":[],"isInLoop":true,"position":1,"parameters":{"history":4,"tabIndex":-1,"useLoop":true,"xpath":"//*[contains(@class, \"pagination\")]/ul[1]/li[12]/a[1]","iframe":true,"wait":2,"waitType":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"scrollType":0,"scrollCount":1,"scrollWaitTime":1,"clickWay":0,"maxWaitTime":10,"paras":[],"allXPaths":["/html/body/div[1]/div[3]/div[1]/div[1]/div[2]/div[1]/div[2]/div[1]/div[1]/ul[1]/li[12]/a[1]","//a[contains(., '»')]","/html/body/div[last()-3]/div[last()-1]/div/div/div/div/div/div/div/ul/li[last()-1]/a"],"loopType":0}},{"id":6,"index":10,"parentId":5,"type":1,"option":8,"title":"循环23123","sequence":[11],"isInLoop":true,"position":0,"parameters":{"history":4,"tabIndex":-1,"useLoop":false,"xpath":"/html/body/div[1]/div[3]/div[1]/div[1]/div[2]/div[1]/div[1]/table[1]/tbody[1]/tr","iframe":true,"wait":0,"waitType":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"scrollType":0,"scrollCount":1,"scrollWaitTime":1,"loopType":1,"pathList":"","textList":"","code":"","waitTime":0,"exitCount":0,"historyWait":2,"breakMode":0,"breakCode":"","breakCodeWaitTime":0,"allXPaths":["/html/body/div[1]/div[3]/div[1]/div[1]/div[2]/div[1]/div[1]/table[1]/tbody[1]/tr[1]","//tr[contains(., '震级(M)发震时刻(')]","//TR[@class='speed-tr-h1']","/html/body/div[last()-3]/div[last()-1]/div/div/div/div/div[last()-1]/table/tbody/tr[last()-20]"]}},{"id":8,"index":11,"parentId":6,"type":0,"option":3,"title":"提取数据","sequence":[],"isInLoop":true,"position":0,"parameters":{"history":4,"tabIndex":-1,"useLoop":false,"xpath":"","iframe":true,"wait":0,"waitType":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"paras":[{"nodeType":0,"contentType":1,"relative":true,"name":"参数1_文本","desc":"","relativeXPath":"/td[1]","allXPaths":["/td[1]","//td[contains(., '2.2')]","/html/body/div[last()-3]/div[last()-1]/div/div/div/div/div[last()-1]/table/tbody/tr[last()-19]/td[last()-5]"],"exampleValues":[{"num":0,"value":"2.2"}],"unique_index":"/td[1]","iframe":true,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0},{"nodeType":0,"contentType":1,"relative":true,"name":"参数2_文本","desc":"","relativeXPath":"/td[2]","allXPaths":["/td[2]","//td[contains(., '2023-06-14')]","/html/body/div[last()-3]/div[last()-1]/div/div/div/div/div[last()-1]/table/tbody/tr[last()-19]/td[last()-4]"],"exampleValues":[{"num":0,"value":"2023-06-1422:24:41"}],"unique_index":"/td[2]","iframe":true,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0},{"nodeType":0,"contentType":1,"relative":true,"name":"参数3_文本","desc":"","relativeXPath":"/td[3]","allXPaths":["/td[3]","//td[contains(., '37.12')]","/html/body/div[last()-3]/div[last()-1]/div/div/div/div/div[last()-1]/table/tbody/tr[last()-19]/td[last()-3]"],"exampleValues":[{"num":0,"value":"37.12"}],"unique_index":"/td[3]","iframe":true,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0},{"nodeType":0,"contentType":1,"relative":true,"name":"参数4_文本","desc":"","relativeXPath":"/td[4]","allXPaths":["/td[4]","//td[contains(., '114.78')]","/html/body/div[last()-3]/div[last()-1]/div/div/div/div/div[last()-1]/table/tbody/tr[last()-19]/td[last()-2]"],"exampleValues":[{"num":0,"value":"114.78"}],"unique_index":"/td[4]","iframe":true,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0},{"nodeType":0,"contentType":1,"relative":true,"name":"参数5_文本","desc":"","relativeXPath":"/td[5]","allXPaths":["/td[5]","//td[contains(., '10')]","/html/body/div[last()-3]/div[last()-1]/div/div/div/div/div[last()-1]/table/tbody/tr[last()-19]/td[last()-1]"],"exampleValues":[{"num":0,"value":"10"}],"unique_index":"/td[5]","iframe":true,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0},{"nodeType":1,"contentType":0,"relative":true,"name":"参数6_链接文本","desc":"","relativeXPath":"/td[6]/a[1]","allXPaths":["/td[6]/a[1]","//a[contains(., '河北邢台市任泽区')]","id(\"cid\")","/html/body/div[last()-3]/div[last()-1]/div/div/div/div/div[last()-1]/table/tbody/tr[last()-19]/td/a"],"exampleValues":[{"num":0,"value":"河北邢台市任泽区"}],"unique_index":"/td[6]/a[1]","iframe":true,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0},{"nodeType":2,"contentType":0,"relative":true,"name":"参数7_链接地址","desc":"","relativeXPath":"/td[6]/a[1]","allXPaths":["/td[6]/a[1]","//a[contains(., '河北邢台市任泽区')]","id(\"cid\")","/html/body/div[last()-3]/div[last()-1]/div/div/div/div/div[last()-1]/table/tbody/tr[last()-19]/td/a"],"exampleValues":[{"num":0,"value":"https://news.ceic.ac.cn/CD20230614222441.html"}],"unique_index":"/td[6]/a[1]","iframe":true,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0},{"nodeType":0,"contentType":1,"relative":true,"name":"参数8_文本","desc":"","relativeXPath":"/th[1]","allXPaths":["/th[1]","//th[contains(., '震级(M)')]","/html/body/div[last()-3]/div[last()-1]/div/div/div/div/div[last()-1]/table/tbody/tr[last()-20]/th[last()-5]"],"exampleValues":[{"num":1,"value":"震级(M)"}],"unique_index":"/th[1]","iframe":true,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0},{"nodeType":0,"contentType":1,"relative":true,"name":"参数9_文本","desc":"","relativeXPath":"/th[2]","allXPaths":["/th[2]","//th[contains(., '发震时刻(UTC+8')]","/html/body/div[last()-3]/div[last()-1]/div/div/div/div/div[last()-1]/table/tbody/tr[last()-20]/th[last()-4]"],"exampleValues":[{"num":1,"value":"发震时刻(UTC+8)"}],"unique_index":"/th[2]","iframe":true,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0},{"nodeType":0,"contentType":1,"relative":true,"name":"参数10_文本","desc":"","relativeXPath":"/th[3]","allXPaths":["/th[3]","//th[contains(., '纬度(°)')]","/html/body/div[last()-3]/div[last()-1]/div/div/div/div/div[last()-1]/table/tbody/tr[last()-20]/th[last()-3]"],"exampleValues":[{"num":1,"value":"纬度(°)"}],"unique_index":"/th[3]","iframe":true,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0},{"nodeType":0,"contentType":1,"relative":true,"name":"参数11_文本","desc":"","relativeXPath":"/th[4]","allXPaths":["/th[4]","//th[contains(., '经度(°)')]","/html/body/div[last()-3]/div[last()-1]/div/div/div/div/div[last()-1]/table/tbody/tr[last()-20]/th[last()-2]"],"exampleValues":[{"num":1,"value":"经度(°)"}],"unique_index":"/th[4]","iframe":true,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0},{"nodeType":0,"contentType":1,"relative":true,"name":"参数12_文本","desc":"","relativeXPath":"/th[5]","allXPaths":["/th[5]","//th[contains(., '深度(千米)')]","/html/body/div[last()-3]/div[last()-1]/div/div/div/div/div[last()-1]/table/tbody/tr[last()-20]/th[last()-1]"],"exampleValues":[{"num":1,"value":"深度(千米)"}],"unique_index":"/th[5]","iframe":true,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0},{"nodeType":0,"contentType":1,"relative":true,"name":"参数13_文本","desc":"","relativeXPath":"/th[6]","allXPaths":["/th[6]","//th[contains(., '参考位置')]","/html/body/div[last()-3]/div[last()-1]/div/div/div/div/div[last()-1]/table/tbody/tr[last()-20]/th"],"exampleValues":[{"num":1,"value":"参考位置"}],"unique_index":"/th[6]","iframe":true,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0}],"loopType":1}},{"id":4,"index":12,"parentId":0,"type":0,"option":3,"title":"提取数据","sequence":[],"isInLoop":false,"position":3,"parameters":{"history":4,"tabIndex":-1,"useLoop":false,"xpath":"","iframe":false,"wait":0,"waitType":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"paras":[{"nodeType":0,"contentType":0,"relative":false,"name":"参数111_文本","desc":"","extractType":0,"relativeXPath":"/html/body/h1[1]","allXPaths":["/html/body/h1[1]","//h1[contains(., 'IFRAME TES')]","/html/body/h1"],"exampleValues":[{"num":0,"value":"IFRAME TEST"}],"unique_index":"0i681vbofdwrljo9xcbf","iframe":false,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0}]}}]} \ No newline at end of file diff --git a/ExecuteStage/.vscode/launch.json b/ExecuteStage/.vscode/launch.json index 292941f..128e00b 100644 --- a/ExecuteStage/.vscode/launch.json +++ b/ExecuteStage/.vscode/launch.json @@ -10,7 +10,7 @@ "program": "${file}", "console": "integratedTerminal", "justMyCode": true, - "args": ["--id", "[18]", "--read_type", "remote", "--headless", "0"] + "args": ["--id", "[29]", "--read_type", "remote", "--headless", "0"] // "args": ["--id", "[2]", "--read_type", "remote", "--headless", "0", "--saved_file_name", "YOUTUBE"] // "args": ["--id", "[44]", "--headless", "0", "--user_data", "1"] } diff --git a/ExecuteStage/easyspider_executestage.py b/ExecuteStage/easyspider_executestage.py index 43061e9..331f1a2 100644 --- a/ExecuteStage/easyspider_executestage.py +++ b/ExecuteStage/easyspider_executestage.py @@ -123,11 +123,11 @@ class BrowserThread(Thread): except: para["iframe"] = False if para["beforeJS"] == "" and para["afterJS"] == "" and para["contentType"] <= 1 and para["nodeType"] <= 2: - # iframe中提取数据的绝对寻址操作不可优化 - if para["relative"] == False and para["iframe"] == True: - para["optimizable"] = False - else: - para["optimizable"] = True + # # iframe中提取数据的绝对寻址操作不可优化 + # if para["relative"] == False and para["iframe"] == True: + # para["optimizable"] = False + # else: + para["optimizable"] = True else: para["optimizable"] = False @@ -465,8 +465,8 @@ class BrowserThread(Thread): 'return history.length') # 记录本次循环内的history的length self.history["index"] = thisHistoryLength self.history["handle"] = thisHandle - if node["parameters"]["iframe"]: - self.browser.switch_to.default_content() # 循环前切换到主文档 + # if node["parameters"]["iframe"]: + # self.browser.switch_to.default_content() # 循环前切换到主文档 if int(node["parameters"]["loopType"]) == 0: # 单个元素循环 # 无跳转标签页操作 count = 0 # 执行次数 @@ -651,8 +651,8 @@ class BrowserThread(Thread): self.executeNode(i, code, node["parameters"]["xpath"], 0) self.history["index"] = thisHistoryLength self.history["handle"] = self.browser.current_window_handle - if node["parameters"]["iframe"]: - self.browser.switch_to.default_content() + # if node["parameters"]["iframe"]: + # self.browser.switch_to.default_content() self.scrollDown(node["parameters"]) # 打开网页事件 @@ -840,8 +840,8 @@ class BrowserThread(Thread): self.recordLog("Cannot find element:" + path + ", please try to set the wait time before executing this operation") print("找不到要点击的元素:" + path + ",请尝试在执行此操作前设置等待时间") - if para["iframe"]: - self.browser.switch_to.default_content() + # if para["iframe"]: + # self.browser.switch_to.default_content() waitTime = float(para["wait"]) + 0.01 # 点击之后等待 try: waitType = int(para["waitType"]) @@ -1034,6 +1034,10 @@ class BrowserThread(Thread): for p in para["paras"]: if p["optimizable"]: try: + # 只有当前环境不变变化才可以快速提取数据 + if self.browser.iframe_env != p["iframe"]: + p["optimizable"] = False + continue p["relativeXPath"] = p["relativeXPath"].lower() if p["nodeType"] == 2: xpath = p["relativeXPath"] + "/@href" diff --git a/ExecuteStage/myChrome.py b/ExecuteStage/myChrome.py index 6fd6fe7..d1a5799 100644 --- a/ExecuteStage/myChrome.py +++ b/ExecuteStage/myChrome.py @@ -19,7 +19,15 @@ desired_capabilities["pageLoadStrategy"] = "none" class MyChrome(webdriver.Chrome): + + def __init__(self, *args, **kwargs): + self.iframe_env = False # 现在的环境是root还是iframe + super().__init__(*args, **kwargs) # 调用父类的 __init__ + def find_element(self, by=By.ID, value=None, iframe=False): + if self.iframe_env: + super().switch_to.default_content() + self.iframe_env = False # 在这里改变查找元素的行为 if iframe: # 获取所有的 iframe @@ -32,6 +40,7 @@ class MyChrome(webdriver.Chrome): for iframe in iframes: # 切换到 iframe super().switch_to.frame(iframe) + self.iframe_env = True try: # 在 iframe 中查找并点击元素 # 在这个例子中,我们查找 XPath 为 '//div[1]' 的元素 @@ -49,6 +58,9 @@ class MyChrome(webdriver.Chrome): return super().find_element(by=by, value=value) def find_elements(self, by=By.ID, value=None, iframe=False): + if self.iframe_env: + super().switch_to.default_content() + self.iframe_env = False # 在这里改变查找元素的行为 if iframe: # 获取所有的 iframe @@ -58,6 +70,7 @@ class MyChrome(webdriver.Chrome): for iframe in iframes: # 切换到 iframe super().switch_to.frame(iframe) + self.iframe_env = True try: # 在 iframe 中查找并点击元素 # 在这个例子中,我们查找 XPath 为 '//div[1]' 的元素