From d78dc655ee77ab846642b57cfc8b2e5d64423e4f Mon Sep 17 00:00:00 2001 From: zhaojunlong <5482498@qq.com> Date: Thu, 19 Mar 2026 10:18:25 +0800 Subject: [PATCH] =?UTF-8?q?```=20chore(config):=20=E6=9B=B4=E6=96=B0.gitig?= =?UTF-8?q?nore=E6=96=87=E4=BB=B6=E4=BB=A5=E5=BF=BD=E7=95=A5=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=BA=93=E7=9B=B8=E5=85=B3=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 添加了data/目录、SQLite数据库文件及相关临时文件到.gitignore中, 避免敏感数据和临时文件被提交到版本控制系统。 ``` --- .gitignore | 5 + config.json | 573 +---------------------------------- package-lock.json | 721 ++++++++++++++++++++++++++------------------ package.json | 3 +- public/index.html | 128 ++++++-- results.json | 266 ---------------- src/agentService.js | 6 +- src/resultStore.js | 471 +++++++++++++++++++++++++++++ src/scheduler.js | 187 +++++------- src/server.js | 545 +++++++++++++++++---------------- 10 files changed, 1367 insertions(+), 1538 deletions(-) delete mode 100644 results.json create mode 100644 src/resultStore.js diff --git a/.gitignore b/.gitignore index 5089459..58de3ad 100644 --- a/.gitignore +++ b/.gitignore @@ -14,6 +14,11 @@ pnpm-debug.log* # 配置文件(包含敏感信息) config.json +data/ +*.sqlite +*.sqlite-shm +*.sqlite-wal +*.migrated.bak # 编辑器目录和文件 .vscode/ diff --git a/config.json b/config.json index 963c677..c084879 100644 --- a/config.json +++ b/config.json @@ -1,582 +1,21 @@ { "agent": { "baseUrl": "http://192.168.3.65:18777", - "useBrowser": false, "pollInterval": 3000, "timeout": 3600000 }, - "tasks": [ - { - "id": "task-1773213332763", - "city": "徐州市-建设工程-招标文件提前公示", - "prompt": "使用scrapling技能的fetch来爬取\nhttps://ggzy.zwb.xz.gov.cn/jyxx/003001/003001014/list.html\n1. 建设工程板块中的【招标文件提前公示】模块\n\n按照以下要求进行:\n【要求一】获取列表数据:\n如果当前列表没有当天的数据,默认获取最新的1条数据。如果当前列表有多条当天数据,请获取当天的全部数据。将获取到的列表数据先存下来:\n【要求二】列表数据处理:\n(1)项目名称:必须要使用列表中的项目名称!而且必须先记住列表中的项目名称!不可以用其他项目名称来替代!记录到“project_name”字段中。\n(2)如果列表已经有金额,依据表头里的金额单位,比如“万元”,需要转为元,不需要打开详情页面去爬取项目金额,记录到“amount_yuan”字段中。\n如果列表没有金额,打开详情页去查看项目金额。记录到“amount_yuan”字段中。\n(3)项目金额:可能为合同预估价/最高投标限价等等。不要试图写代码去正则匹配金额,因为金额的表述很多样,优先获取到详情md文件(或者html)后,使用`takeMoney`工具进行获取提取金额。\n(4)项目名称和项目金额必须对应,如果获取不到金额,将金额直接设置为null值。禁止联想生成项目金额。\n\n【要求三】\n(1)必须记录下每个项目的详情链接,记录到\"target_link\"字段中。\n\n输出结果为json,json结构如下\n```\n{\n \"results\": [\n\n {\n \"type\": \"比如房建市政-招标文公告\",\n\t\t\"project_name\": \"\",\n\t\t\"amount_yuan\": 0,\n\t\t\"date\": \"yyyy-MM-dd\",\n\t\t\"target_link\": \"http...\"\n\t }\n ]\n}\n```\n爬取思路\n 1. 先初步探索需要采集的内容\n 2. 根据实际情况,制定详细的采集计划,并将计划写入到plans.md文件中\n 3. 按照计划,委托给subagent去完成采集任务,不要自己去采集\n 4. 校验subagent的采集结果,复查计划进度\n 5. 计划完成后汇总结果,形成用户需要的数据", - "enabled": true, - "useBrowser": false, - "mode": "glm-5" - }, - { - "id": "task-1773215122877", - "city": "徐州市-建设工程-招标公告/资审公告", - "prompt": "使用scrapling技能的fetch来爬取\nhttps://ggzy.zwb.xz.gov.cn/jyxx/003001/003001001/list.html\n1. 建设工程板块中的【招标公告/资审公告】模块\n\n按照以下要求进行:\n【要求一】获取列表数据:\n如果当前列表没有当天的数据,默认获取最新的1条数据。如果当前列表有多条当天数据,请获取当天的全部数据。将获取到的列表数据先存下来:\n【要求二】列表数据处理:\n(1)项目名称:必须要使用列表中的项目名称!而且必须先记住列表中的项目名称!不可以用其他项目名称来替代!记录到“project_name”字段中。\n(2)如果列表已经有金额,依据表头里的金额单位,比如“万元”,需要转为元,不需要打开详情页面去爬取项目金额,记录到“amount_yuan”字段中。\n如果列表没有金额,打开详情页去查看项目金额。记录到“amount_yuan”字段中。\n(3)项目金额:可能为合同预估价/最高投标限价等等。不要试图写代码去正则匹配金额,因为金额的表述很多样,优先获取到详情md文件(或者html)后,使用`takeMoney`工具进行获取提取金额。\n(4)项目名称和项目金额必须对应,如果获取不到金额,将金额直接设置为null值。禁止联想生成项目金额。\n\n【要求三】\n(1)必须记录下每个项目的详情链接,记录到\"target_link\"字段中。\n\n输出结果为json,json结构如下\n```\n{\n \"results\": [\n\n {\n \"type\": \"比如房建市政-招标文公告\",\n\t\t\"project_name\": \"\",\n\t\t\"amount_yuan\": 0,\n\t\t\"date\": \"yyyy-MM-dd\",\n\t\t\"target_link\": \"http...\"\n\t }\n ]\n}\n```\n爬取思路\n 1. 先初步探索需要采集的内容\n 2. 根据实际情况,制定详细的采集计划,并将计划写入到plans.md文件中\n 3. 按照计划,委托给subagent去完成采集任务,不要自己去采集\n 4. 校验subagent的采集结果,复查计划进度\n 5. 计划完成后汇总结果,形成用户需要的数据", - "enabled": true, - "useBrowser": false, - "mode": "glm-5" - }, - { - "id": "task-1773215206067", - "city": "徐州市-交通工程-招标计划", - "prompt": "使用scrapling技能的fetch来爬取\nhttps://ggzy.zwb.xz.gov.cn/jyxx/003002/003002005/list.html\n1. 交通工程板块中的【招标计划】模块\n\n按照以下要求进行:\n【要求一】获取列表数据:\n如果当前列表没有当天的数据,默认获取最新的1条数据。如果当前列表有多条当天数据,请获取当天的全部数据。将获取到的列表数据先存下来:\n【要求二】列表数据处理:\n(1)项目名称:必须要使用列表中的项目名称!而且必须先记住列表中的项目名称!不可以用其他项目名称来替代!记录到“project_name”字段中。\n(2)如果列表已经有金额,依据表头里的金额单位,比如“万元”,需要转为元,不需要打开详情页面去爬取项目金额,记录到“amount_yuan”字段中。\n如果列表没有金额,打开详情页去查看项目金额。记录到“amount_yuan”字段中。\n(3)项目金额:可能为合同预估价/最高投标限价等等。不要试图写代码去正则匹配金额,因为金额的表述很多样,优先获取到详情md文件(或者html)后,使用`takeMoney`工具进行获取提取金额。\n(4)项目名称和项目金额必须对应,如果获取不到金额,将金额直接设置为null值。禁止联想生成项目金额。\n\n【要求三】\n(1)必须记录下每个项目的详情链接,记录到\"target_link\"字段中。\n\n输出结果为json,json结构如下\n```\n{\n \"results\": [\n\n {\n \"type\": \"比如房建市政-招标文公告\",\n\t\t\"project_name\": \"\",\n\t\t\"amount_yuan\": 0,\n\t\t\"date\": \"yyyy-MM-dd\",\n\t\t\"target_link\": \"http...\"\n\t }\n ]\n}\n```\n爬取思路\n 1. 先初步探索需要采集的内容\n 2. 根据实际情况,制定详细的采集计划,并将计划写入到plans.md文件中\n 3. 按照计划,委托给subagent去完成采集任务,不要自己去采集\n 4. 校验subagent的采集结果,复查计划进度\n 5. 计划完成后汇总结果,形成用户需要的数据", - "enabled": true, - "useBrowser": false, - "mode": "glm-5" - }, - { - "id": "task-1773215248600", - "city": "徐州市-交通工程-招标公告", - "prompt": "使用scrapling技能的fetch来爬取\nhttps://ggzy.zwb.xz.gov.cn/jyxx/003002/003002001/list.html\n1. 交通工程板块中的【招标公告】模块\n\n按照以下要求进行:\n【要求一】获取列表数据:\n如果当前列表没有当天的数据,默认获取最新的1条数据。如果当前列表有多条当天数据,请获取当天的全部数据。将获取到的列表数据先存下来:\n【要求二】列表数据处理:\n(1)项目名称:必须要使用列表中的项目名称!而且必须先记住列表中的项目名称!不可以用其他项目名称来替代!记录到“project_name”字段中。\n(2)如果列表已经有金额,依据表头里的金额单位,比如“万元”,需要转为元,不需要打开详情页面去爬取项目金额,记录到“amount_yuan”字段中。\n如果列表没有金额,打开详情页去查看项目金额。记录到“amount_yuan”字段中。\n(3)项目金额:可能为合同预估价/最高投标限价等等。不要试图写代码去正则匹配金额,因为金额的表述很多样,优先获取到详情md文件(或者html)后,使用`takeMoney`工具进行获取提取金额。\n(4)项目名称和项目金额必须对应,如果获取不到金额,将金额直接设置为null值。禁止联想生成项目金额。\n\n【要求三】\n(1)必须记录下每个项目的详情链接,记录到\"target_link\"字段中。\n\n输出结果为json,json结构如下\n```\n{\n \"results\": [\n\n {\n \"type\": \"比如房建市政-招标文公告\",\n\t\t\"project_name\": \"\",\n\t\t\"amount_yuan\": 0,\n\t\t\"date\": \"yyyy-MM-dd\",\n\t\t\"target_link\": \"http...\"\n\t }\n ]\n}\n```\n爬取思路\n 1. 先初步探索需要采集的内容\n 2. 根据实际情况,制定详细的采集计划,并将计划写入到plans.md文件中\n 3. 按照计划,委托给subagent去完成采集任务,不要自己去采集\n 4. 校验subagent的采集结果,复查计划进度\n 5. 计划完成后汇总结果,形成用户需要的数据", - "enabled": true, - "useBrowser": false, - "mode": "glm-5" - }, - { - "id": "task-1773215628722", - "city": "徐州市-水务工程-招标计划", - "prompt": "使用scrapling技能的fetch来爬取\nhttps://ggzy.zwb.xz.gov.cn/jyxx/003003/003003005/list.html\n1. 水务工程板块中的【招标计划】模块\n\n按照以下要求进行:\n【要求一】获取列表数据:\n如果当前列表没有当天的数据,默认获取最新的1条数据。如果当前列表有多条当天数据,请获取当天的全部数据。将获取到的列表数据先存下来:\n【要求二】列表数据处理:\n(1)项目名称:必须要使用列表中的项目名称!而且必须先记住列表中的项目名称!不可以用其他项目名称来替代!记录到“project_name”字段中。\n(2)如果列表已经有金额,依据表头里的金额单位,比如“万元”,需要转为元,不需要打开详情页面去爬取项目金额,记录到“amount_yuan”字段中。\n如果列表没有金额,打开详情页去查看项目金额。记录到“amount_yuan”字段中。\n(3)项目金额:可能为合同预估价/最高投标限价等等。不要试图写代码去正则匹配金额,因为金额的表述很多样,优先获取到详情md文件(或者html)后,使用`takeMoney`工具进行获取提取金额。\n(4)项目名称和项目金额必须对应,如果获取不到金额,将金额直接设置为null值。禁止联想生成项目金额。\n\n【要求三】\n(1)必须记录下每个项目的详情链接,记录到\"target_link\"字段中。\n\n输出结果为json,json结构如下\n```\n{\n \"results\": [\n\n {\n \"type\": \"比如房建市政-招标文公告\",\n\t\t\"project_name\": \"\",\n\t\t\"amount_yuan\": 0,\n\t\t\"date\": \"yyyy-MM-dd\",\n\t\t\"target_link\": \"http...\"\n\t }\n ]\n}\n```\n爬取思路\n 1. 先初步探索需要采集的内容\n 2. 根据实际情况,制定详细的采集计划,并将计划写入到plans.md文件中\n 3. 按照计划,委托给subagent去完成采集任务,不要自己去采集\n 4. 校验subagent的采集结果,复查计划进度\n 5. 计划完成后汇总结果,形成用户需要的数据", - "enabled": true, - "useBrowser": false, - "mode": "glm-5" - }, - { - "id": "task-1773215674753", - "city": "徐州市-水务工程-招标公告", - "prompt": "使用scrapling技能的fetch来爬取\nhttps://ggzy.zwb.xz.gov.cn/jyxx/003003/003003001/list.html\n1. 水务工程板块中的【招标公告】模块\n\n按照以下要求进行:\n【要求一】获取列表数据:\n如果当前列表没有当天的数据,默认获取最新的1条数据。如果当前列表有多条当天数据,请获取当天的全部数据。将获取到的列表数据先存下来:\n【要求二】列表数据处理:\n(1)项目名称:必须要使用列表中的项目名称!而且必须先记住列表中的项目名称!不可以用其他项目名称来替代!记录到“project_name”字段中。\n(2)如果列表已经有金额,依据表头里的金额单位,比如“万元”,需要转为元,不需要打开详情页面去爬取项目金额,记录到“amount_yuan”字段中。\n如果列表没有金额,打开详情页去查看项目金额。记录到“amount_yuan”字段中。\n(3)项目金额:可能为合同预估价/最高投标限价等等。不要试图写代码去正则匹配金额,因为金额的表述很多样,优先获取到详情md文件(或者html)后,使用`takeMoney`工具进行获取提取金额。\n(4)项目名称和项目金额必须对应,如果获取不到金额,将金额直接设置为null值。禁止联想生成项目金额。\n\n【要求三】\n(1)必须记录下每个项目的详情链接,记录到\"target_link\"字段中。\n\n输出结果为json,json结构如下\n```\n{\n \"results\": [\n\n {\n \"type\": \"比如房建市政-招标文公告\",\n\t\t\"project_name\": \"\",\n\t\t\"amount_yuan\": 0,\n\t\t\"date\": \"yyyy-MM-dd\",\n\t\t\"target_link\": \"http...\"\n\t }\n ]\n}\n```\n爬取思路\n 1. 先初步探索需要采集的内容\n 2. 根据实际情况,制定详细的采集计划,并将计划写入到plans.md文件中\n 3. 按照计划,委托给subagent去完成采集任务,不要自己去采集\n 4. 校验subagent的采集结果,复查计划进度\n 5. 计划完成后汇总结果,形成用户需要的数据", - "enabled": true, - "useBrowser": false, - "mode": "glm-5" - }, - { - "id": "task-1773217569819", - "city": "无锡市-建设工程-招标公告", - "prompt": "使用scrapling技能的fetch来爬取\nhttps://ggzyjy.wuxi.gov.cn/wxsggzyjyzxzl/jyxx/jsgc/index.shtml\n1. 建设工程板块中的招标公告【工程类】【非工程类】模块\n\n按照以下要求进行:\n【要求一】获取列表数据:\n如果当前列表没有当天的数据,默认获取最新的1条数据。如果当前列表有多条当天数据,请获取当天的全部数据。将获取到的列表数据先存下来:\n【要求二】列表数据处理:\n(1)项目名称:必须要使用列表中的项目名称!而且必须先记住列表中的项目名称!不可以用其他项目名称来替代!记录到“project_name”字段中。\n(2)如果列表已经有金额,依据表头里的金额单位,比如“万元”,需要转为元,不需要打开详情页面去爬取项目金额,记录到“amount_yuan”字段中。\n如果列表没有金额,打开详情页去查看项目金额。记录到“amount_yuan”字段中。\n(3)项目金额:可能为合同预估价/最高投标限价等等。不要试图写代码去正则匹配金额,因为金额的表述很多样,优先获取到详情md文件(或者html)后,使用`takeMoney`工具进行获取提取金额。\n(4)项目名称和项目金额必须对应,如果获取不到金额,将金额直接设置为null值。禁止联想生成项目金额。\n\n【要求三】\n(1)必须记录下每个项目的详情链接,记录到\"target_link\"字段中。\n\n输出结果为json,json结构如下\n```\n{\n \"results\": [\n\n {\n \"type\": \"比如房建市政-招标文公告\",\n\t\t\"project_name\": \"\",\n\t\t\"amount_yuan\": 0,\n\t\t\"date\": \"yyyy-MM-dd\",\n\t\t\"target_link\": \"http...\"\n\t }\n ]\n}\n```\n爬取思路\n 1. 先初步探索需要采集的内容\n 2. 根据实际情况,制定详细的采集计划,并将计划写入到plans.md文件中\n 3. 按照计划,委托给subagent去完成采集任务,不要自己去采集\n 4. 校验subagent的采集结果,复查计划进度\n 5. 计划完成后汇总结果,形成用户需要的数据", - "enabled": false, - "useBrowser": false, - "mode": "glm-5" - }, - { - "id": "task-1773217660649", - "city": "无锡市-水利工程-招标公告", - "prompt": "使用scrapling技能的fetch来爬取\nhttps://ggzyjy.wuxi.gov.cn/wxsggzyjyzxzl/jyxx/slgc/index.shtml\n1. 水利工程板块中的【招标公告】模块\n\n按照以下要求进行:\n【要求一】获取列表数据:\n如果当前列表没有当天的数据,默认获取最新的1条数据。如果当前列表有多条当天数据,请获取当天的全部数据。将获取到的列表数据先存下来:\n【要求二】列表数据处理:\n(1)项目名称:必须要使用列表中的项目名称!而且必须先记住列表中的项目名称!不可以用其他项目名称来替代!记录到“project_name”字段中。\n(2)如果列表已经有金额,依据表头里的金额单位,比如“万元”,需要转为元,不需要打开详情页面去爬取项目金额,记录到“amount_yuan”字段中。\n如果列表没有金额,打开详情页去查看项目金额。记录到“amount_yuan”字段中。\n(3)项目金额:可能为合同预估价/最高投标限价等等。不要试图写代码去正则匹配金额,因为金额的表述很多样,优先获取到详情md文件(或者html)后,使用`takeMoney`工具进行获取提取金额。\n(4)项目名称和项目金额必须对应,如果获取不到金额,将金额直接设置为null值。禁止联想生成项目金额。\n\n【要求三】\n(1)必须记录下每个项目的详情链接,记录到\"target_link\"字段中。\n\n输出结果为json,json结构如下\n```\n{\n \"results\": [\n\n {\n \"type\": \"比如房建市政-招标文公告\",\n\t\t\"project_name\": \"\",\n\t\t\"amount_yuan\": 0,\n\t\t\"date\": \"yyyy-MM-dd\",\n\t\t\"target_link\": \"http...\"\n\t }\n ]\n}\n```\n爬取思路\n 1. 先初步探索需要采集的内容\n 2. 根据实际情况,制定详细的采集计划,并将计划写入到plans.md文件中\n 3. 按照计划,委托给subagent去完成采集任务,不要自己去采集\n 4. 校验subagent的采集结果,复查计划进度\n 5. 计划完成后汇总结果,形成用户需要的数据", - "enabled": false, - "useBrowser": false, - "mode": "glm-5" - }, - { - "id": "task-1773217743111", - "city": "无锡市-交通工程-招标公告", - "prompt": "使用scrapling技能的fetch来爬取\nhttps://ggzyjy.wuxi.gov.cn/wxsggzyjyzxzl/jyxx/jtgc/index.shtml\n1. 交通工程板块中的【招标公告】模块\n\n按照以下要求进行:\n【要求一】获取列表数据:\n如果当前列表没有当天的数据,默认获取最新的1条数据。如果当前列表有多条当天数据,请获取当天的全部数据。将获取到的列表数据先存下来:\n【要求二】列表数据处理:\n(1)项目名称:必须要使用列表中的项目名称!而且必须先记住列表中的项目名称!不可以用其他项目名称来替代!记录到“project_name”字段中。\n(2)如果列表已经有金额,依据表头里的金额单位,比如“万元”,需要转为元,不需要打开详情页面去爬取项目金额,记录到“amount_yuan”字段中。\n如果列表没有金额,打开详情页去查看项目金额。记录到“amount_yuan”字段中。\n(3)项目金额:可能为合同预估价/最高投标限价等等。不要试图写代码去正则匹配金额,因为金额的表述很多样,优先获取到详情md文件(或者html)后,使用`takeMoney`工具进行获取提取金额。\n(4)项目名称和项目金额必须对应,如果获取不到金额,将金额直接设置为null值。禁止联想生成项目金额。\n\n【要求三】\n(1)必须记录下每个项目的详情链接,记录到\"target_link\"字段中。\n\n输出结果为json,json结构如下\n```\n{\n \"results\": [\n\n {\n \"type\": \"比如房建市政-招标文公告\",\n\t\t\"project_name\": \"\",\n\t\t\"amount_yuan\": 0,\n\t\t\"date\": \"yyyy-MM-dd\",\n\t\t\"target_link\": \"http...\"\n\t }\n ]\n}\n```\n爬取思路\n 1. 先初步探索需要采集的内容\n 2. 根据实际情况,制定详细的采集计划,并将计划写入到plans.md文件中\n 3. 按照计划,委托给subagent去完成采集任务,不要自己去采集\n 4. 校验subagent的采集结果,复查计划进度\n 5. 计划完成后汇总结果,形成用户需要的数据", - "enabled": false, - "useBrowser": false, - "mode": "glm-5" - }, - { - "id": "task-1773218603505", - "city": "南京市-房建市政-招标公告", - "prompt": "使用scrapling技能的fetch来爬取\nhttps://njggzy.nanjing.gov.cn/njweb/fjsz/buildService1.html\n1. 房建市政板块中的招标公告中的【工程类】、【服务类】模块\n\n按照以下要求进行:\n【要求一】获取列表数据:\n如果当前列表没有当天的数据,默认获取最新的1条数据。如果当前列表有多条当天数据,请获取当天的全部数据。将获取到的列表数据先存下来:\n【要求二】列表数据处理:\n(1)项目名称:必须要使用列表中的项目名称!而且必须先记住列表中的项目名称!不可以用其他项目名称来替代!记录到“project_name”字段中。\n(2)如果列表已经有金额,依据表头里的金额单位,比如“万元”,需要转为元,不需要打开详情页面去爬取项目金额,记录到“amount_yuan”字段中。\n如果列表没有金额,打开详情页去查看项目金额。记录到“amount_yuan”字段中。\n(3)项目金额:可能为合同预估价/最高投标限价等等。不要试图写代码去正则匹配金额,因为金额的表述很多样,优先获取到详情md文件(或者html)后,使用`takeMoney`工具进行获取提取金额。\n(4)项目名称和项目金额必须对应,如果获取不到金额,将金额直接设置为null值。禁止联想生成项目金额。\n\n【要求三】\n(1)必须记录下每个项目的详情链接,记录到\"target_link\"字段中。\n\n输出结果为json,json结构如下\n```\n{\n \"results\": [\n\n {\n \"type\": \"比如房建市政-招标文公告\",\n\t\t\"project_name\": \"\",\n\t\t\"amount_yuan\": 0,\n\t\t\"date\": \"yyyy-MM-dd\",\n\t\t\"target_link\": \"http...\"\n\t }\n ]\n}\n```\n爬取思路\n 1. 先初步探索需要采集的内容\n 2. 根据实际情况,制定详细的采集计划,并将计划写入到plans.md文件中\n 3. 按照计划,委托给subagent去完成采集任务,不要自己去采集\n 4. 校验subagent的采集结果,复查计划进度\n 5. 计划完成后汇总结果,形成用户需要的数据", - "enabled": false, - "useBrowser": false, - "mode": "glm-5" - }, - { - "id": "task-1773218673384", - "city": "南京市-交通水务-招标公告", - "prompt": "使用scrapling技能的fetch来爬取\nhttps://njggzy.nanjing.gov.cn/njweb/jtsw/traffic.html\n1. 交通水务板块中的招标公告中的【交通】、【水务】模块\n\n按照以下要求进行:\n【要求一】获取列表数据:\n如果当前列表没有当天的数据,默认获取最新的1条数据。如果当前列表有多条当天数据,请获取当天的全部数据。将获取到的列表数据先存下来:\n【要求二】列表数据处理:\n(1)项目名称:必须要使用列表中的项目名称!而且必须先记住列表中的项目名称!不可以用其他项目名称来替代!记录到“project_name”字段中。\n(2)如果列表已经有金额,依据表头里的金额单位,比如“万元”,需要转为元,不需要打开详情页面去爬取项目金额,记录到“amount_yuan”字段中。\n如果列表没有金额,打开详情页去查看项目金额。记录到“amount_yuan”字段中。\n(3)项目金额:可能为合同预估价/最高投标限价等等。不要试图写代码去正则匹配金额,因为金额的表述很多样,优先获取到详情md文件(或者html)后,使用`takeMoney`工具进行获取提取金额。\n(4)项目名称和项目金额必须对应,如果获取不到金额,将金额直接设置为null值。禁止联想生成项目金额。\n\n【要求三】\n(1)必须记录下每个项目的详情链接,记录到\"target_link\"字段中。\n\n输出结果为json,json结构如下\n```\n{\n \"results\": [\n\n {\n \"type\": \"比如房建市政-招标文公告\",\n\t\t\"project_name\": \"\",\n\t\t\"amount_yuan\": 0,\n\t\t\"date\": \"yyyy-MM-dd\",\n\t\t\"target_link\": \"http...\"\n\t }\n ]\n}\n```\n爬取思路\n 1. 先初步探索需要采集的内容\n 2. 根据实际情况,制定详细的采集计划,并将计划写入到plans.md文件中\n 3. 按照计划,委托给subagent去完成采集任务,不要自己去采集\n 4. 校验subagent的采集结果,复查计划进度\n 5. 计划完成后汇总结果,形成用户需要的数据", - "enabled": false, - "useBrowser": false, - "mode": "glm-5" - }, - { - "id": "task-1773220796068", - "city": "南通市-建设工程-招标计划", - "prompt": "使用scrapling技能的fetch来爬取\nhttps://ggzyjy.nantong.gov.cn/jyxx/003001/003001009/tradeInfo.html\n1. 建设工程板块中的【招标计划】模块\n\n按照以下要求进行:\n【要求一】获取列表数据:\n如果当前列表没有当天的数据,默认获取最新的1条数据。如果当前列表有多条当天数据,请获取当天的全部数据。将获取到的列表数据先存下来:\n【要求二】列表数据处理:\n(1)项目名称:必须要使用列表中的项目名称!而且必须先记住列表中的项目名称!不可以用其他项目名称来替代!记录到“project_name”字段中。\n(2)如果列表已经有金额,依据表头里的金额单位,比如“万元”,需要转为元,不需要打开详情页面去爬取项目金额,记录到“amount_yuan”字段中。\n如果列表没有金额,打开详情页去查看项目金额。记录到“amount_yuan”字段中。\n(3)项目金额:可能为合同预估价/最高投标限价等等。不要试图写代码去正则匹配金额,因为金额的表述很多样,优先获取到详情md文件(或者html)后,使用`takeMoney`工具进行获取提取金额。\n(4)项目名称和项目金额必须对应,如果获取不到金额,将金额直接设置为null值。禁止联想生成项目金额。\n\n【要求三】\n(1)必须记录下每个项目的详情链接,记录到\"target_link\"字段中。\n\n输出结果为json,json结构如下\n```\n{\n \"results\": [\n\n {\n \"type\": \"比如房建市政-招标文公告\",\n\t\t\"project_name\": \"\",\n\t\t\"amount_yuan\": 0,\n\t\t\"date\": \"yyyy-MM-dd\",\n\t\t\"target_link\": \"http...\"\n\t }\n ]\n}\n```\n爬取思路\n 1. 先初步探索需要采集的内容\n 2. 根据实际情况,制定详细的采集计划,并将计划写入到plans.md文件中\n 3. 按照计划,委托给subagent去完成采集任务,不要自己去采集\n 4. 校验subagent的采集结果,复查计划进度\n 5. 计划完成后汇总结果,形成用户需要的数据", - "enabled": false, - "useBrowser": false, - "mode": "glm-5" - }, - { - "id": "task-1773220861223", - "city": "南通市-建设工程-招标公告/资审公告", - "prompt": "使用scrapling技能的fetch来爬取\nhttps://ggzyjy.nantong.gov.cn/jyxx/003001/003001001/tradeInfo.html\n1. 建设工程板块【招标公告/资审公告】模块\n\n按照以下要求进行:\n【要求一】获取列表数据:\n如果当前列表没有当天的数据,默认获取最新的1条数据。如果当前列表有多条当天数据,请获取当天的全部数据。将获取到的列表数据先存下来:\n【要求二】列表数据处理:\n(1)项目名称:必须要使用列表中的项目名称!而且必须先记住列表中的项目名称!不可以用其他项目名称来替代!记录到“project_name”字段中。\n(2)如果列表已经有金额,依据表头里的金额单位,比如“万元”,需要转为元,不需要打开详情页面去爬取项目金额,记录到“amount_yuan”字段中。\n如果列表没有金额,打开详情页去查看项目金额。记录到“amount_yuan”字段中。\n(3)项目金额:可能为合同预估价/最高投标限价等等。不要试图写代码去正则匹配金额,因为金额的表述很多样,优先获取到详情md文件(或者html)后,使用`takeMoney`工具进行获取提取金额。\n(4)项目名称和项目金额必须对应,如果获取不到金额,将金额直接设置为null值。禁止联想生成项目金额。\n\n【要求三】\n(1)必须记录下每个项目的详情链接,记录到\"target_link\"字段中。\n\n输出结果为json,json结构如下\n```\n{\n \"results\": [\n\n {\n \"type\": \"比如房建市政-招标文公告\",\n\t\t\"project_name\": \"\",\n\t\t\"amount_yuan\": 0,\n\t\t\"date\": \"yyyy-MM-dd\",\n\t\t\"target_link\": \"http...\"\n\t }\n ]\n}\n```\n爬取思路\n 1. 先初步探索需要采集的内容\n 2. 根据实际情况,制定详细的采集计划,并将计划写入到plans.md文件中\n 3. 按照计划,委托给subagent去完成采集任务,不要自己去采集\n 4. 校验subagent的采集结果,复查计划进度\n 5. 计划完成后汇总结果,形成用户需要的数据", - "enabled": false, - "useBrowser": false, - "mode": "glm-5" - }, - { - "id": "task-1773222149540", - "city": "南通市-交通工程-招标公告/招标计划", - "prompt": "使用scrapling技能的fetch来爬取\nhttps://ggzyjy.nantong.gov.cn/jyxx/003005/003005001/tradeInfo.html\n1. 交通工程板块【招标公告/招标计划】模块\n\n按照以下要求进行:\n【要求一】获取列表数据:\n如果当前列表没有当天的数据,默认获取最新的1条数据。如果当前列表有多条当天数据,请获取当天的全部数据。将获取到的列表数据先存下来:\n【要求二】列表数据处理:\n(1)项目名称:必须要使用列表中的项目名称!而且必须先记住列表中的项目名称!不可以用其他项目名称来替代!记录到“project_name”字段中。\n(2)如果列表已经有金额,依据表头里的金额单位,比如“万元”,需要转为元,不需要打开详情页面去爬取项目金额,记录到“amount_yuan”字段中。\n如果列表没有金额,打开详情页去查看项目金额。记录到“amount_yuan”字段中。\n(3)项目金额:可能为合同预估价/最高投标限价等等。不要试图写代码去正则匹配金额,因为金额的表述很多样,优先获取到详情md文件(或者html)后,使用`takeMoney`工具进行获取提取金额。\n(4)项目名称和项目金额必须对应,如果获取不到金额,将金额直接设置为null值。禁止联想生成项目金额。\n\n【要求三】\n(1)必须记录下每个项目的详情链接,记录到\"target_link\"字段中。\n\n输出结果为json,json结构如下\n```\n{\n \"results\": [\n\n {\n \"type\": \"比如房建市政-招标文公告\",\n\t\t\"project_name\": \"\",\n\t\t\"amount_yuan\": 0,\n\t\t\"date\": \"yyyy-MM-dd\",\n\t\t\"target_link\": \"http...\"\n\t }\n ]\n}\n```\n爬取思路\n 1. 先初步探索需要采集的内容\n 2. 根据实际情况,制定详细的采集计划,并将计划写入到plans.md文件中\n 3. 按照计划,委托给subagent去完成采集任务,不要自己去采集\n 4. 校验subagent的采集结果,复查计划进度\n 5. 计划完成后汇总结果,形成用户需要的数据", - "enabled": false, - "useBrowser": false, - "mode": "glm-5" - }, - { - "id": "task-1773222268523", - "city": "南通市-水利工程-招标公告/招标计划", - "prompt": "使用scrapling技能的fetch来爬取\nhttps://ggzyjy.nantong.gov.cn/jyxx/003006/003006001/tradeInfo.html\n1. 水利工程板块【招标公告/招标计划】模块\n\n按照以下要求进行:\n【要求一】获取列表数据:\n如果当前列表没有当天的数据,默认获取最新的1条数据。如果当前列表有多条当天数据,请获取当天的全部数据。将获取到的列表数据先存下来:\n【要求二】列表数据处理:\n(1)项目名称:必须要使用列表中的项目名称!而且必须先记住列表中的项目名称!不可以用其他项目名称来替代!记录到“project_name”字段中。\n(2)如果列表已经有金额,依据表头里的金额单位,比如“万元”,需要转为元,不需要打开详情页面去爬取项目金额,记录到“amount_yuan”字段中。\n如果列表没有金额,打开详情页去查看项目金额。记录到“amount_yuan”字段中。\n(3)项目金额:可能为合同预估价/最高投标限价等等。不要试图写代码去正则匹配金额,因为金额的表述很多样,优先获取到详情md文件(或者html)后,使用`takeMoney`工具进行获取提取金额。\n(4)项目名称和项目金额必须对应,如果获取不到金额,将金额直接设置为null值。禁止联想生成项目金额。\n\n【要求三】\n(1)必须记录下每个项目的详情链接,记录到\"target_link\"字段中。\n\n输出结果为json,json结构如下\n```\n{\n \"results\": [\n\n {\n \"type\": \"比如房建市政-招标文公告\",\n\t\t\"project_name\": \"\",\n\t\t\"amount_yuan\": 0,\n\t\t\"date\": \"yyyy-MM-dd\",\n\t\t\"target_link\": \"http...\"\n\t }\n ]\n}\n```\n爬取思路\n 1. 先初步探索需要采集的内容\n 2. 根据实际情况,制定详细的采集计划,并将计划写入到plans.md文件中\n 3. 按照计划,委托给subagent去完成采集任务,不要自己去采集\n 4. 校验subagent的采集结果,复查计划进度\n 5. 计划完成后汇总结果,形成用户需要的数据", - "enabled": false, - "useBrowser": false, - "mode": "glm-5" - }, - { - "id": "task-1773222554722", - "city": "连云港市-建设工程-招标计划", - "prompt": "使用scrapling技能的fetch来爬取\nhttp://ggzy.lyg.gov.cn/lygweb/jyxx/001001/001001008/tradeInfo.html\n1. 建设工程板块【招标计划】模块\n\n按照以下要求进行:\n【要求一】获取列表数据:\n如果当前列表没有当天的数据,默认获取最新的1条数据。如果当前列表有多条当天数据,请获取当天的全部数据。将获取到的列表数据先存下来:\n【要求二】列表数据处理:\n(1)项目名称:必须要使用列表中的项目名称!而且必须先记住列表中的项目名称!不可以用其他项目名称来替代!记录到“project_name”字段中。\n(2)如果列表已经有金额,依据表头里的金额单位,比如“万元”,需要转为元,不需要打开详情页面去爬取项目金额,记录到“amount_yuan”字段中。\n如果列表没有金额,打开详情页去查看项目金额。记录到“amount_yuan”字段中。\n(3)项目金额:可能为合同预估价/最高投标限价等等。不要试图写代码去正则匹配金额,因为金额的表述很多样,优先获取到详情md文件(或者html)后,使用`takeMoney`工具进行获取提取金额。\n(4)项目名称和项目金额必须对应,如果获取不到金额,将金额直接设置为null值。禁止联想生成项目金额。\n\n【要求三】\n(1)必须记录下每个项目的详情链接,记录到\"target_link\"字段中。\n\n输出结果为json,json结构如下\n```\n{\n \"results\": [\n\n {\n \"type\": \"比如房建市政-招标文公告\",\n\t\t\"project_name\": \"\",\n\t\t\"amount_yuan\": 0,\n\t\t\"date\": \"yyyy-MM-dd\",\n\t\t\"target_link\": \"http...\"\n\t }\n ]\n}\n```\n爬取思路\n 1. 先初步探索需要采集的内容\n 2. 根据实际情况,制定详细的采集计划,并将计划写入到plans.md文件中\n 3. 按照计划,委托给subagent去完成采集任务,不要自己去采集\n 4. 校验subagent的采集结果,复查计划进度\n 5. 计划完成后汇总结果,形成用户需要的数据", - "enabled": false, - "useBrowser": false, - "mode": "glm-5" - }, - { - "id": "task-1773222633782", - "city": "连云港市-建设工程-招标公告", - "prompt": "使用scrapling技能的fetch来爬取\nhttp://ggzy.lyg.gov.cn/lygweb/jyxx/001001/001001001/tradeInfo.html\n1. 建设工程板块【招标公告】模块\n\n按照以下要求进行:\n【要求一】获取列表数据:\n如果当前列表没有当天的数据,默认获取最新的1条数据。如果当前列表有多条当天数据,请获取当天的全部数据。将获取到的列表数据先存下来:\n【要求二】列表数据处理:\n(1)项目名称:必须要使用列表中的项目名称!而且必须先记住列表中的项目名称!不可以用其他项目名称来替代!记录到“project_name”字段中。\n(2)如果列表已经有金额,依据表头里的金额单位,比如“万元”,需要转为元,不需要打开详情页面去爬取项目金额,记录到“amount_yuan”字段中。\n如果列表没有金额,打开详情页去查看项目金额。记录到“amount_yuan”字段中。\n(3)项目金额:可能为合同预估价/最高投标限价等等。不要试图写代码去正则匹配金额,因为金额的表述很多样,优先获取到详情md文件(或者html)后,使用`takeMoney`工具进行获取提取金额。\n(4)项目名称和项目金额必须对应,如果获取不到金额,将金额直接设置为null值。禁止联想生成项目金额。\n\n【要求三】\n(1)必须记录下每个项目的详情链接,记录到\"target_link\"字段中。\n\n输出结果为json,json结构如下\n```\n{\n \"results\": [\n\n {\n \"type\": \"比如房建市政-招标文公告\",\n\t\t\"project_name\": \"\",\n\t\t\"amount_yuan\": 0,\n\t\t\"date\": \"yyyy-MM-dd\",\n\t\t\"target_link\": \"http...\"\n\t }\n ]\n}\n```\n爬取思路\n 1. 先初步探索需要采集的内容\n 2. 根据实际情况,制定详细的采集计划,并将计划写入到plans.md文件中\n 3. 按照计划,委托给subagent去完成采集任务,不要自己去采集\n 4. 校验subagent的采集结果,复查计划进度\n 5. 计划完成后汇总结果,形成用户需要的数据", - "enabled": false, - "useBrowser": false, - "mode": "glm-5" - }, - { - "id": "task-1773222806709", - "city": "连云港市-交通工程-招标计划", - "prompt": "使用scrapling技能的fetch来爬取\nhttp://ggzy.lyg.gov.cn/lygweb/jyxx/001002/001002004/tradeInfo.html\n1. 交通工程板块【招标计划】模块\n\n按照以下要求进行:\n【要求一】获取列表数据:\n如果当前列表没有当天的数据,默认获取最新的1条数据。如果当前列表有多条当天数据,请获取当天的全部数据。将获取到的列表数据先存下来:\n【要求二】列表数据处理:\n(1)项目名称:必须要使用列表中的项目名称!而且必须先记住列表中的项目名称!不可以用其他项目名称来替代!记录到“project_name”字段中。\n(2)如果列表已经有金额,依据表头里的金额单位,比如“万元”,需要转为元,不需要打开详情页面去爬取项目金额,记录到“amount_yuan”字段中。\n如果列表没有金额,打开详情页去查看项目金额。记录到“amount_yuan”字段中。\n(3)项目金额:可能为合同预估价/最高投标限价等等。不要试图写代码去正则匹配金额,因为金额的表述很多样,优先获取到详情md文件(或者html)后,使用`takeMoney`工具进行获取提取金额。\n(4)项目名称和项目金额必须对应,如果获取不到金额,将金额直接设置为null值。禁止联想生成项目金额。\n\n【要求三】\n(1)必须记录下每个项目的详情链接,记录到\"target_link\"字段中。\n\n输出结果为json,json结构如下\n```\n{\n \"results\": [\n\n {\n \"type\": \"比如房建市政-招标文公告\",\n\t\t\"project_name\": \"\",\n\t\t\"amount_yuan\": 0,\n\t\t\"date\": \"yyyy-MM-dd\",\n\t\t\"target_link\": \"http...\"\n\t }\n ]\n}\n```\n爬取思路\n 1. 先初步探索需要采集的内容\n 2. 根据实际情况,制定详细的采集计划,并将计划写入到plans.md文件中\n 3. 按照计划,委托给subagent去完成采集任务,不要自己去采集\n 4. 校验subagent的采集结果,复查计划进度\n 5. 计划完成后汇总结果,形成用户需要的数据", - "enabled": false, - "useBrowser": false, - "mode": "glm-5" - }, - { - "id": "task-1773222852359", - "city": "连云港市-交通工程-招标公告", - "prompt": "使用scrapling技能的fetch来爬取\nhttp://ggzy.lyg.gov.cn/lygweb/jyxx/001002/001002001/tradeInfo.html\n1. 交通工程板块【招标公告】模块\n\n按照以下要求进行:\n【要求一】获取列表数据:\n如果当前列表没有当天的数据,默认获取最新的1条数据。如果当前列表有多条当天数据,请获取当天的全部数据。将获取到的列表数据先存下来:\n【要求二】列表数据处理:\n(1)项目名称:必须要使用列表中的项目名称!而且必须先记住列表中的项目名称!不可以用其他项目名称来替代!记录到“project_name”字段中。\n(2)如果列表已经有金额,依据表头里的金额单位,比如“万元”,需要转为元,不需要打开详情页面去爬取项目金额,记录到“amount_yuan”字段中。\n如果列表没有金额,打开详情页去查看项目金额。记录到“amount_yuan”字段中。\n(3)项目金额:可能为合同预估价/最高投标限价等等。不要试图写代码去正则匹配金额,因为金额的表述很多样,优先获取到详情md文件(或者html)后,使用`takeMoney`工具进行获取提取金额。\n(4)项目名称和项目金额必须对应,如果获取不到金额,将金额直接设置为null值。禁止联想生成项目金额。\n\n【要求三】\n(1)必须记录下每个项目的详情链接,记录到\"target_link\"字段中。\n\n输出结果为json,json结构如下\n```\n{\n \"results\": [\n\n {\n \"type\": \"比如房建市政-招标文公告\",\n\t\t\"project_name\": \"\",\n\t\t\"amount_yuan\": 0,\n\t\t\"date\": \"yyyy-MM-dd\",\n\t\t\"target_link\": \"http...\"\n\t }\n ]\n}\n```\n爬取思路\n 1. 先初步探索需要采集的内容\n 2. 根据实际情况,制定详细的采集计划,并将计划写入到plans.md文件中\n 3. 按照计划,委托给subagent去完成采集任务,不要自己去采集\n 4. 校验subagent的采集结果,复查计划进度\n 5. 计划完成后汇总结果,形成用户需要的数据", - "enabled": false, - "useBrowser": false, - "mode": "glm-5" - }, - { - "id": "task-1773222920195", - "city": "连云港市-水利工程-招标计划", - "prompt": "使用scrapling技能的fetch来爬取\nhttp://ggzy.lyg.gov.cn/lygweb/jyxx/001003/001003004/tradeInfo.html\n1. 水利工程板块【招标计划】模块\n\n按照以下要求进行:\n【要求一】获取列表数据:\n如果当前列表没有当天的数据,默认获取最新的1条数据。如果当前列表有多条当天数据,请获取当天的全部数据。将获取到的列表数据先存下来:\n【要求二】列表数据处理:\n(1)项目名称:必须要使用列表中的项目名称!而且必须先记住列表中的项目名称!不可以用其他项目名称来替代!记录到“project_name”字段中。\n(2)如果列表已经有金额,依据表头里的金额单位,比如“万元”,需要转为元,不需要打开详情页面去爬取项目金额,记录到“amount_yuan”字段中。\n如果列表没有金额,打开详情页去查看项目金额。记录到“amount_yuan”字段中。\n(3)项目金额:可能为合同预估价/最高投标限价等等。不要试图写代码去正则匹配金额,因为金额的表述很多样,优先获取到详情md文件(或者html)后,使用`takeMoney`工具进行获取提取金额。\n(4)项目名称和项目金额必须对应,如果获取不到金额,将金额直接设置为null值。禁止联想生成项目金额。\n\n【要求三】\n(1)必须记录下每个项目的详情链接,记录到\"target_link\"字段中。\n\n输出结果为json,json结构如下\n```\n{\n \"results\": [\n\n {\n \"type\": \"比如房建市政-招标文公告\",\n\t\t\"project_name\": \"\",\n\t\t\"amount_yuan\": 0,\n\t\t\"date\": \"yyyy-MM-dd\",\n\t\t\"target_link\": \"http...\"\n\t }\n ]\n}\n```\n爬取思路\n 1. 先初步探索需要采集的内容\n 2. 根据实际情况,制定详细的采集计划,并将计划写入到plans.md文件中\n 3. 按照计划,委托给subagent去完成采集任务,不要自己去采集\n 4. 校验subagent的采集结果,复查计划进度\n 5. 计划完成后汇总结果,形成用户需要的数据", - "enabled": false, - "useBrowser": false, - "mode": "glm-5" - }, - { - "id": "task-1773222960973", - "city": "连云港市-水利工程-招标公告", - "prompt": "使用scrapling技能的fetch来爬取\nhttp://ggzy.lyg.gov.cn/lygweb/jyxx/001003/001003001/tradeInfo.html\n1. 水利工程板块【招标公告】模块\n\n按照以下要求进行:\n【要求一】获取列表数据:\n如果当前列表没有当天的数据,默认获取最新的1条数据。如果当前列表有多条当天数据,请获取当天的全部数据。将获取到的列表数据先存下来:\n【要求二】列表数据处理:\n(1)项目名称:必须要使用列表中的项目名称!而且必须先记住列表中的项目名称!不可以用其他项目名称来替代!记录到“project_name”字段中。\n(2)如果列表已经有金额,依据表头里的金额单位,比如“万元”,需要转为元,不需要打开详情页面去爬取项目金额,记录到“amount_yuan”字段中。\n如果列表没有金额,打开详情页去查看项目金额。记录到“amount_yuan”字段中。\n(3)项目金额:可能为合同预估价/最高投标限价等等。不要试图写代码去正则匹配金额,因为金额的表述很多样,优先获取到详情md文件(或者html)后,使用`takeMoney`工具进行获取提取金额。\n(4)项目名称和项目金额必须对应,如果获取不到金额,将金额直接设置为null值。禁止联想生成项目金额。\n\n【要求三】\n(1)必须记录下每个项目的详情链接,记录到\"target_link\"字段中。\n\n输出结果为json,json结构如下\n```\n{\n \"results\": [\n\n {\n \"type\": \"比如房建市政-招标文公告\",\n\t\t\"project_name\": \"\",\n\t\t\"amount_yuan\": 0,\n\t\t\"date\": \"yyyy-MM-dd\",\n\t\t\"target_link\": \"http...\"\n\t }\n ]\n}\n```\n爬取思路\n 1. 先初步探索需要采集的内容\n 2. 根据实际情况,制定详细的采集计划,并将计划写入到plans.md文件中\n 3. 按照计划,委托给subagent去完成采集任务,不要自己去采集\n 4. 校验subagent的采集结果,复查计划进度\n 5. 计划完成后汇总结果,形成用户需要的数据", - "enabled": false, - "useBrowser": false, - "mode": "glm-5" - }, - { - "id": "task-1773223258041", - "city": "淮安市-建设工程-招标计划", - "prompt": "使用scrapling技能的fetch来爬取\nhttps://ggzy.huaian.gov.cn/jyxx/001001/001001009/tradeInfo.html\n1. 建设工程板块【招标计划】模块\n\n按照以下要求进行:\n【要求一】获取列表数据:\n如果当前列表没有当天的数据,默认获取最新的1条数据。如果当前列表有多条当天数据,请获取当天的全部数据。将获取到的列表数据先存下来:\n【要求二】列表数据处理:\n(1)项目名称:必须要使用列表中的项目名称!而且必须先记住列表中的项目名称!不可以用其他项目名称来替代!记录到“project_name”字段中。\n(2)如果列表已经有金额,依据表头里的金额单位,比如“万元”,需要转为元,不需要打开详情页面去爬取项目金额,记录到“amount_yuan”字段中。\n如果列表没有金额,打开详情页去查看项目金额。记录到“amount_yuan”字段中。\n(3)项目金额:可能为合同预估价/最高投标限价等等。不要试图写代码去正则匹配金额,因为金额的表述很多样,优先获取到详情md文件(或者html)后,使用`takeMoney`工具进行获取提取金额。\n(4)项目名称和项目金额必须对应,如果获取不到金额,将金额直接设置为null值。禁止联想生成项目金额。\n\n【要求三】\n(1)必须记录下每个项目的详情链接,记录到\"target_link\"字段中。\n\n输出结果为json,json结构如下\n```\n{\n \"results\": [\n\n {\n \"type\": \"比如房建市政-招标文公告\",\n\t\t\"project_name\": \"\",\n\t\t\"amount_yuan\": 0,\n\t\t\"date\": \"yyyy-MM-dd\",\n\t\t\"target_link\": \"http...\"\n\t }\n ]\n}\n```\n爬取思路\n 1. 先初步探索需要采集的内容\n 2. 根据实际情况,制定详细的采集计划,并将计划写入到plans.md文件中\n 3. 按照计划,委托给subagent去完成采集任务,不要自己去采集\n 4. 校验subagent的采集结果,复查计划进度\n 5. 计划完成后汇总结果,形成用户需要的数据", - "enabled": false, - "useBrowser": false, - "mode": "glm-5" - }, - { - "id": "task-1773223302642", - "city": "淮安市-建设工程-招标公告", - "prompt": "使用scrapling技能的fetch来爬取\nhttps://ggzy.huaian.gov.cn/jyxx/001001/001001001/tradeInfo.html\n1. 建设工程板块【招标公告】模块\n\n按照以下要求进行:\n【要求一】获取列表数据:\n如果当前列表没有当天的数据,默认获取最新的1条数据。如果当前列表有多条当天数据,请获取当天的全部数据。将获取到的列表数据先存下来:\n【要求二】列表数据处理:\n(1)项目名称:必须要使用列表中的项目名称!而且必须先记住列表中的项目名称!不可以用其他项目名称来替代!记录到“project_name”字段中。\n(2)如果列表已经有金额,依据表头里的金额单位,比如“万元”,需要转为元,不需要打开详情页面去爬取项目金额,记录到“amount_yuan”字段中。\n如果列表没有金额,打开详情页去查看项目金额。记录到“amount_yuan”字段中。\n(3)项目金额:可能为合同预估价/最高投标限价等等。不要试图写代码去正则匹配金额,因为金额的表述很多样,优先获取到详情md文件(或者html)后,使用`takeMoney`工具进行获取提取金额。\n(4)项目名称和项目金额必须对应,如果获取不到金额,将金额直接设置为null值。禁止联想生成项目金额。\n\n【要求三】\n(1)必须记录下每个项目的详情链接,记录到\"target_link\"字段中。\n\n输出结果为json,json结构如下\n```\n{\n \"results\": [\n\n {\n \"type\": \"比如房建市政-招标文公告\",\n\t\t\"project_name\": \"\",\n\t\t\"amount_yuan\": 0,\n\t\t\"date\": \"yyyy-MM-dd\",\n\t\t\"target_link\": \"http...\"\n\t }\n ]\n}\n```\n爬取思路\n 1. 先初步探索需要采集的内容\n 2. 根据实际情况,制定详细的采集计划,并将计划写入到plans.md文件中\n 3. 按照计划,委托给subagent去完成采集任务,不要自己去采集\n 4. 校验subagent的采集结果,复查计划进度\n 5. 计划完成后汇总结果,形成用户需要的数据", - "enabled": false, - "useBrowser": false, - "mode": "glm-5" - }, - { - "id": "task-1773225146455", - "city": "淮安市-交通工程-招标计划", - "prompt": "使用scrapling技能的fetch来爬取\nhttps://ggzy.huaian.gov.cn/jyxx/001002/001002009/tradeInfo.html\n1. 交通工程板块【招标计划】模块\n\n按照以下要求进行:\n【要求一】获取列表数据:\n如果当前列表没有当天的数据,默认获取最新的1条数据。如果当前列表有多条当天数据,请获取当天的全部数据。将获取到的列表数据先存下来:\n【要求二】列表数据处理:\n(1)项目名称:必须要使用列表中的项目名称!而且必须先记住列表中的项目名称!不可以用其他项目名称来替代!记录到“project_name”字段中。\n(2)如果列表已经有金额,依据表头里的金额单位,比如“万元”,需要转为元,不需要打开详情页面去爬取项目金额,记录到“amount_yuan”字段中。\n如果列表没有金额,打开详情页去查看项目金额。记录到“amount_yuan”字段中。\n(3)项目金额:可能为合同预估价/最高投标限价等等。不要试图写代码去正则匹配金额,因为金额的表述很多样,优先获取到详情md文件(或者html)后,使用`takeMoney`工具进行获取提取金额。\n(4)项目名称和项目金额必须对应,如果获取不到金额,将金额直接设置为null值。禁止联想生成项目金额。\n\n【要求三】\n(1)必须记录下每个项目的详情链接,记录到\"target_link\"字段中。\n\n输出结果为json,json结构如下\n```\n{\n \"results\": [\n\n {\n \"type\": \"比如房建市政-招标文公告\",\n\t\t\"project_name\": \"\",\n\t\t\"amount_yuan\": 0,\n\t\t\"date\": \"yyyy-MM-dd\",\n\t\t\"target_link\": \"http...\"\n\t }\n ]\n}\n```\n爬取思路\n 1. 先初步探索需要采集的内容\n 2. 根据实际情况,制定详细的采集计划,并将计划写入到plans.md文件中\n 3. 按照计划,委托给subagent去完成采集任务,不要自己去采集\n 4. 校验subagent的采集结果,复查计划进度\n 5. 计划完成后汇总结果,形成用户需要的数据", - "enabled": false, - "useBrowser": false, - "mode": "glm-5" - }, - { - "id": "task-1773225198650", - "city": "淮安市-交通工程-招标公告", - "prompt": "使用scrapling技能的fetch来爬取\nhttps://ggzy.huaian.gov.cn/jyxx/001002/001002001/tradeInfo.html\n1. 交通工程板块【招标公告】模块\n\n按照以下要求进行:\n【要求一】获取列表数据:\n如果当前列表没有当天的数据,默认获取最新的1条数据。如果当前列表有多条当天数据,请获取当天的全部数据。将获取到的列表数据先存下来:\n【要求二】列表数据处理:\n(1)项目名称:必须要使用列表中的项目名称!而且必须先记住列表中的项目名称!不可以用其他项目名称来替代!记录到“project_name”字段中。\n(2)如果列表已经有金额,依据表头里的金额单位,比如“万元”,需要转为元,不需要打开详情页面去爬取项目金额,记录到“amount_yuan”字段中。\n如果列表没有金额,打开详情页去查看项目金额。记录到“amount_yuan”字段中。\n(3)项目金额:可能为合同预估价/最高投标限价等等。不要试图写代码去正则匹配金额,因为金额的表述很多样,优先获取到详情md文件(或者html)后,使用`takeMoney`工具进行获取提取金额。\n(4)项目名称和项目金额必须对应,如果获取不到金额,将金额直接设置为null值。禁止联想生成项目金额。\n\n【要求三】\n(1)必须记录下每个项目的详情链接,记录到\"target_link\"字段中。\n\n输出结果为json,json结构如下\n```\n{\n \"results\": [\n\n {\n \"type\": \"比如房建市政-招标文公告\",\n\t\t\"project_name\": \"\",\n\t\t\"amount_yuan\": 0,\n\t\t\"date\": \"yyyy-MM-dd\",\n\t\t\"target_link\": \"http...\"\n\t }\n ]\n}\n```\n爬取思路\n 1. 先初步探索需要采集的内容\n 2. 根据实际情况,制定详细的采集计划,并将计划写入到plans.md文件中\n 3. 按照计划,委托给subagent去完成采集任务,不要自己去采集\n 4. 校验subagent的采集结果,复查计划进度\n 5. 计划完成后汇总结果,形成用户需要的数据", - "enabled": false, - "useBrowser": false, - "mode": "glm-5" - }, - { - "id": "task-1773225266784", - "city": "淮安市-水利工程-招标计划", - "prompt": "使用scrapling技能的fetch来爬取\nhttps://ggzy.huaian.gov.cn/jyxx/001003/001003006/tradeInfo.html\n1. 水利工程板块【招标计划】模块\n\n按照以下要求进行:\n【要求一】获取列表数据:\n如果当前列表没有当天的数据,默认获取最新的1条数据。如果当前列表有多条当天数据,请获取当天的全部数据。将获取到的列表数据先存下来:\n【要求二】列表数据处理:\n(1)项目名称:必须要使用列表中的项目名称!而且必须先记住列表中的项目名称!不可以用其他项目名称来替代!记录到“project_name”字段中。\n(2)如果列表已经有金额,依据表头里的金额单位,比如“万元”,需要转为元,不需要打开详情页面去爬取项目金额,记录到“amount_yuan”字段中。\n如果列表没有金额,打开详情页去查看项目金额。记录到“amount_yuan”字段中。\n(3)项目金额:可能为合同预估价/最高投标限价等等。不要试图写代码去正则匹配金额,因为金额的表述很多样,优先获取到详情md文件(或者html)后,使用`takeMoney`工具进行获取提取金额。\n(4)项目名称和项目金额必须对应,如果获取不到金额,将金额直接设置为null值。禁止联想生成项目金额。\n\n【要求三】\n(1)必须记录下每个项目的详情链接,记录到\"target_link\"字段中。\n\n输出结果为json,json结构如下\n```\n{\n \"results\": [\n\n {\n \"type\": \"比如房建市政-招标文公告\",\n\t\t\"project_name\": \"\",\n\t\t\"amount_yuan\": 0,\n\t\t\"date\": \"yyyy-MM-dd\",\n\t\t\"target_link\": \"http...\"\n\t }\n ]\n}\n```\n爬取思路\n 1. 先初步探索需要采集的内容\n 2. 根据实际情况,制定详细的采集计划,并将计划写入到plans.md文件中\n 3. 按照计划,委托给subagent去完成采集任务,不要自己去采集\n 4. 校验subagent的采集结果,复查计划进度\n 5. 计划完成后汇总结果,形成用户需要的数据", - "enabled": false, - "useBrowser": false, - "mode": "glm-5" - }, - { - "id": "task-1773225305718", - "city": "淮安市-水利工程-招标公告", - "prompt": "使用scrapling技能的fetch来爬取\nhttps://ggzy.huaian.gov.cn/jyxx/001003/001003001/tradeInfo.html\n1. 水利工程板块【招标公告】模块\n\n按照以下要求进行:\n【要求一】获取列表数据:\n如果当前列表没有当天的数据,默认获取最新的1条数据。如果当前列表有多条当天数据,请获取当天的全部数据。将获取到的列表数据先存下来:\n【要求二】列表数据处理:\n(1)项目名称:必须要使用列表中的项目名称!而且必须先记住列表中的项目名称!不可以用其他项目名称来替代!记录到“project_name”字段中。\n(2)如果列表已经有金额,依据表头里的金额单位,比如“万元”,需要转为元,不需要打开详情页面去爬取项目金额,记录到“amount_yuan”字段中。\n如果列表没有金额,打开详情页去查看项目金额。记录到“amount_yuan”字段中。\n(3)项目金额:可能为合同预估价/最高投标限价等等。不要试图写代码去正则匹配金额,因为金额的表述很多样,优先获取到详情md文件(或者html)后,使用`takeMoney`工具进行获取提取金额。\n(4)项目名称和项目金额必须对应,如果获取不到金额,将金额直接设置为null值。禁止联想生成项目金额。\n\n【要求三】\n(1)必须记录下每个项目的详情链接,记录到\"target_link\"字段中。\n\n输出结果为json,json结构如下\n```\n{\n \"results\": [\n\n {\n \"type\": \"比如房建市政-招标文公告\",\n\t\t\"project_name\": \"\",\n\t\t\"amount_yuan\": 0,\n\t\t\"date\": \"yyyy-MM-dd\",\n\t\t\"target_link\": \"http...\"\n\t }\n ]\n}\n```\n爬取思路\n 1. 先初步探索需要采集的内容\n 2. 根据实际情况,制定详细的采集计划,并将计划写入到plans.md文件中\n 3. 按照计划,委托给subagent去完成采集任务,不要自己去采集\n 4. 校验subagent的采集结果,复查计划进度\n 5. 计划完成后汇总结果,形成用户需要的数据", - "enabled": false, - "useBrowser": false, - "mode": "glm-5" - }, - { - "id": "task-1773225383907", - "city": "淮安市-土地整治-招标计划", - "prompt": "使用scrapling技能的fetch来爬取\nhttps://ggzy.huaian.gov.cn/jyxx/001009/001009005/tradeInfo.html\n1. 土地整治板块【招标计划】模块\n\n按照以下要求进行:\n【要求一】获取列表数据:\n如果当前列表没有当天的数据,默认获取最新的1条数据。如果当前列表有多条当天数据,请获取当天的全部数据。将获取到的列表数据先存下来:\n【要求二】列表数据处理:\n(1)项目名称:必须要使用列表中的项目名称!而且必须先记住列表中的项目名称!不可以用其他项目名称来替代!记录到“project_name”字段中。\n(2)如果列表已经有金额,依据表头里的金额单位,比如“万元”,需要转为元,不需要打开详情页面去爬取项目金额,记录到“amount_yuan”字段中。\n如果列表没有金额,打开详情页去查看项目金额。记录到“amount_yuan”字段中。\n(3)项目金额:可能为合同预估价/最高投标限价等等。不要试图写代码去正则匹配金额,因为金额的表述很多样,优先获取到详情md文件(或者html)后,使用`takeMoney`工具进行获取提取金额。\n(4)项目名称和项目金额必须对应,如果获取不到金额,将金额直接设置为null值。禁止联想生成项目金额。\n\n【要求三】\n(1)必须记录下每个项目的详情链接,记录到\"target_link\"字段中。\n\n输出结果为json,json结构如下\n```\n{\n \"results\": [\n\n {\n \"type\": \"比如房建市政-招标文公告\",\n\t\t\"project_name\": \"\",\n\t\t\"amount_yuan\": 0,\n\t\t\"date\": \"yyyy-MM-dd\",\n\t\t\"target_link\": \"http...\"\n\t }\n ]\n}\n```\n爬取思路\n 1. 先初步探索需要采集的内容\n 2. 根据实际情况,制定详细的采集计划,并将计划写入到plans.md文件中\n 3. 按照计划,委托给subagent去完成采集任务,不要自己去采集\n 4. 校验subagent的采集结果,复查计划进度\n 5. 计划完成后汇总结果,形成用户需要的数据", - "enabled": false, - "useBrowser": false, - "mode": "glm-5" - }, - { - "id": "task-1773225424486", - "city": "淮安市-土地整治-招标公告", - "prompt": "使用scrapling技能的fetch来爬取\nhttps://ggzy.huaian.gov.cn/jyxx/001009/001009001/tradeInfo.html\n1. 土地整治板块【招标公告】模块\n\n按照以下要求进行:\n【要求一】获取列表数据:\n如果当前列表没有当天的数据,默认获取最新的1条数据。如果当前列表有多条当天数据,请获取当天的全部数据。将获取到的列表数据先存下来:\n【要求二】列表数据处理:\n(1)项目名称:必须要使用列表中的项目名称!而且必须先记住列表中的项目名称!不可以用其他项目名称来替代!记录到“project_name”字段中。\n(2)如果列表已经有金额,依据表头里的金额单位,比如“万元”,需要转为元,不需要打开详情页面去爬取项目金额,记录到“amount_yuan”字段中。\n如果列表没有金额,打开详情页去查看项目金额。记录到“amount_yuan”字段中。\n(3)项目金额:可能为合同预估价/最高投标限价等等。不要试图写代码去正则匹配金额,因为金额的表述很多样,优先获取到详情md文件(或者html)后,使用`takeMoney`工具进行获取提取金额。\n(4)项目名称和项目金额必须对应,如果获取不到金额,将金额直接设置为null值。禁止联想生成项目金额。\n\n【要求三】\n(1)必须记录下每个项目的详情链接,记录到\"target_link\"字段中。\n\n输出结果为json,json结构如下\n```\n{\n \"results\": [\n\n {\n \"type\": \"比如房建市政-招标文公告\",\n\t\t\"project_name\": \"\",\n\t\t\"amount_yuan\": 0,\n\t\t\"date\": \"yyyy-MM-dd\",\n\t\t\"target_link\": \"http...\"\n\t }\n ]\n}\n```\n爬取思路\n 1. 先初步探索需要采集的内容\n 2. 根据实际情况,制定详细的采集计划,并将计划写入到plans.md文件中\n 3. 按照计划,委托给subagent去完成采集任务,不要自己去采集\n 4. 校验subagent的采集结果,复查计划进度\n 5. 计划完成后汇总结果,形成用户需要的数据", - "enabled": false, - "useBrowser": false, - "mode": "glm-5" - }, - { - "id": "task-1773225496197", - "city": "淮安市-农田建设-招标计划", - "prompt": "使用scrapling技能的fetch来爬取\nhttps://ggzy.huaian.gov.cn/jyxx/001010/001010005/tradeInfo.html\n1. 农田建设板块【招标计划】模块\n\n按照以下要求进行:\n【要求一】获取列表数据:\n如果当前列表没有当天的数据,默认获取最新的1条数据。如果当前列表有多条当天数据,请获取当天的全部数据。将获取到的列表数据先存下来:\n【要求二】列表数据处理:\n(1)项目名称:必须要使用列表中的项目名称!而且必须先记住列表中的项目名称!不可以用其他项目名称来替代!记录到“project_name”字段中。\n(2)如果列表已经有金额,依据表头里的金额单位,比如“万元”,需要转为元,不需要打开详情页面去爬取项目金额,记录到“amount_yuan”字段中。\n如果列表没有金额,打开详情页去查看项目金额。记录到“amount_yuan”字段中。\n(3)项目金额:可能为合同预估价/最高投标限价等等。不要试图写代码去正则匹配金额,因为金额的表述很多样,优先获取到详情md文件(或者html)后,使用`takeMoney`工具进行获取提取金额。\n(4)项目名称和项目金额必须对应,如果获取不到金额,将金额直接设置为null值。禁止联想生成项目金额。\n\n【要求三】\n(1)必须记录下每个项目的详情链接,记录到\"target_link\"字段中。\n\n输出结果为json,json结构如下\n```\n{\n \"results\": [\n\n {\n \"type\": \"比如房建市政-招标文公告\",\n\t\t\"project_name\": \"\",\n\t\t\"amount_yuan\": 0,\n\t\t\"date\": \"yyyy-MM-dd\",\n\t\t\"target_link\": \"http...\"\n\t }\n ]\n}\n```\n爬取思路\n 1. 先初步探索需要采集的内容\n 2. 根据实际情况,制定详细的采集计划,并将计划写入到plans.md文件中\n 3. 按照计划,委托给subagent去完成采集任务,不要自己去采集\n 4. 校验subagent的采集结果,复查计划进度\n 5. 计划完成后汇总结果,形成用户需要的数据", - "enabled": false, - "useBrowser": false, - "mode": "glm-5" - }, - { - "id": "task-1773225533513", - "city": "淮安市-农田建设-招标公告", - "prompt": "使用scrapling技能的fetch来爬取\nhttps://ggzy.huaian.gov.cn/jyxx/001010/001010001/tradeInfo.html\n1. 农田建设板块【招标公告】模块\n\n按照以下要求进行:\n【要求一】获取列表数据:\n如果当前列表没有当天的数据,默认获取最新的1条数据。如果当前列表有多条当天数据,请获取当天的全部数据。将获取到的列表数据先存下来:\n【要求二】列表数据处理:\n(1)项目名称:必须要使用列表中的项目名称!而且必须先记住列表中的项目名称!不可以用其他项目名称来替代!记录到“project_name”字段中。\n(2)如果列表已经有金额,依据表头里的金额单位,比如“万元”,需要转为元,不需要打开详情页面去爬取项目金额,记录到“amount_yuan”字段中。\n如果列表没有金额,打开详情页去查看项目金额。记录到“amount_yuan”字段中。\n(3)项目金额:可能为合同预估价/最高投标限价等等。不要试图写代码去正则匹配金额,因为金额的表述很多样,优先获取到详情md文件(或者html)后,使用`takeMoney`工具进行获取提取金额。\n(4)项目名称和项目金额必须对应,如果获取不到金额,将金额直接设置为null值。禁止联想生成项目金额。\n\n【要求三】\n(1)必须记录下每个项目的详情链接,记录到\"target_link\"字段中。\n\n输出结果为json,json结构如下\n```\n{\n \"results\": [\n\n {\n \"type\": \"比如房建市政-招标文公告\",\n\t\t\"project_name\": \"\",\n\t\t\"amount_yuan\": 0,\n\t\t\"date\": \"yyyy-MM-dd\",\n\t\t\"target_link\": \"http...\"\n\t }\n ]\n}\n```\n爬取思路\n 1. 先初步探索需要采集的内容\n 2. 根据实际情况,制定详细的采集计划,并将计划写入到plans.md文件中\n 3. 按照计划,委托给subagent去完成采集任务,不要自己去采集\n 4. 校验subagent的采集结果,复查计划进度\n 5. 计划完成后汇总结果,形成用户需要的数据", - "enabled": false, - "useBrowser": false, - "mode": "glm-5" - }, - { - "id": "task-1773226587983", - "city": "扬州市-房建市政-招标公告", - "prompt": "使用scrapling技能的fetch来爬取\nhttps://ggzyjyzx.yangzhou.gov.cn/jyxx/fjsz/zbgg/index.html\n1. 房建市政板块【招标公告】模块\n\n按照以下要求进行:\n【要求一】获取列表数据:\n如果当前列表没有当天的数据,默认获取最新的1条数据。如果当前列表有多条当天数据,请获取当天的全部数据。将获取到的列表数据先存下来:\n【要求二】列表数据处理:\n(1)项目名称:必须要使用列表中的项目名称!而且必须先记住列表中的项目名称!不可以用其他项目名称来替代!记录到“project_name”字段中。\n(2)如果列表已经有金额,依据表头里的金额单位,比如“万元”,需要转为元,不需要打开详情页面去爬取项目金额,记录到“amount_yuan”字段中。\n如果列表没有金额,打开详情页去查看项目金额。记录到“amount_yuan”字段中。\n(3)项目金额:可能为合同预估价/最高投标限价等等。不要试图写代码去正则匹配金额,因为金额的表述很多样,优先获取到详情md文件(或者html)后,使用`takeMoney`工具进行获取提取金额。\n(4)项目名称和项目金额必须对应,如果获取不到金额,将金额直接设置为null值。禁止联想生成项目金额。\n\n【要求三】\n(1)必须记录下每个项目的详情链接,记录到\"target_link\"字段中。\n\n输出结果为json,json结构如下\n```\n{\n \"results\": [\n\n {\n \"type\": \"比如房建市政-招标文公告\",\n\t\t\"project_name\": \"\",\n\t\t\"amount_yuan\": 0,\n\t\t\"date\": \"yyyy-MM-dd\",\n\t\t\"target_link\": \"http...\"\n\t }\n ]\n}\n```\n爬取思路\n 1. 先初步探索需要采集的内容\n 2. 根据实际情况,制定详细的采集计划,并将计划写入到plans.md文件中\n 3. 按照计划,委托给subagent去完成采集任务,不要自己去采集\n 4. 校验subagent的采集结果,复查计划进度\n 5. 计划完成后汇总结果,形成用户需要的数据", - "enabled": false, - "useBrowser": false, - "mode": "glm-5" - }, - { - "id": "task-1773227503951", - "city": "扬州市-交通工程-招标公告", - "prompt": "使用scrapling技能的fetch来爬取\nhttps://ggzyjyzx.yangzhou.gov.cn/jyxx/jtgc/zbgg/index.html\n1. 交通工程板块【招标公告】模块\n\n按照以下要求进行:\n【要求一】获取列表数据:\n如果当前列表没有当天的数据,默认获取最新的1条数据。如果当前列表有多条当天数据,请获取当天的全部数据。将获取到的列表数据先存下来:\n【要求二】列表数据处理:\n(1)项目名称:必须要使用列表中的项目名称!而且必须先记住列表中的项目名称!不可以用其他项目名称来替代!记录到“project_name”字段中。\n(2)如果列表已经有金额,依据表头里的金额单位,比如“万元”,需要转为元,不需要打开详情页面去爬取项目金额,记录到“amount_yuan”字段中。\n如果列表没有金额,打开详情页去查看项目金额。记录到“amount_yuan”字段中。\n(3)项目金额:可能为合同预估价/最高投标限价等等。不要试图写代码去正则匹配金额,因为金额的表述很多样,优先获取到详情md文件(或者html)后,使用`takeMoney`工具进行获取提取金额。\n(4)项目名称和项目金额必须对应,如果获取不到金额,将金额直接设置为null值。禁止联想生成项目金额。\n\n【要求三】\n(1)必须记录下每个项目的详情链接,记录到\"target_link\"字段中。\n\n输出结果为json,json结构如下\n```\n{\n \"results\": [\n\n {\n \"type\": \"比如房建市政-招标文公告\",\n\t\t\"project_name\": \"\",\n\t\t\"amount_yuan\": 0,\n\t\t\"date\": \"yyyy-MM-dd\",\n\t\t\"target_link\": \"http...\"\n\t }\n ]\n}\n```\n爬取思路\n 1. 先初步探索需要采集的内容\n 2. 根据实际情况,制定详细的采集计划,并将计划写入到plans.md文件中\n 3. 按照计划,委托给subagent去完成采集任务,不要自己去采集\n 4. 校验subagent的采集结果,复查计划进度\n 5. 计划完成后汇总结果,形成用户需要的数据", - "enabled": false, - "useBrowser": false, - "mode": "glm-5" - }, - { - "id": "task-1773227565067", - "city": "扬州市-水利工程-招标公告", - "prompt": "使用scrapling技能的fetch来爬取\nhttps://ggzyjyzx.yangzhou.gov.cn/jyxx/slgc/zbgg/index.html\n1. 水利工程板块【招标公告】模块\n\n按照以下要求进行:\n【要求一】获取列表数据:\n如果当前列表没有当天的数据,默认获取最新的1条数据。如果当前列表有多条当天数据,请获取当天的全部数据。将获取到的列表数据先存下来:\n【要求二】列表数据处理:\n(1)项目名称:必须要使用列表中的项目名称!而且必须先记住列表中的项目名称!不可以用其他项目名称来替代!记录到“project_name”字段中。\n(2)如果列表已经有金额,依据表头里的金额单位,比如“万元”,需要转为元,不需要打开详情页面去爬取项目金额,记录到“amount_yuan”字段中。\n如果列表没有金额,打开详情页去查看项目金额。记录到“amount_yuan”字段中。\n(3)项目金额:可能为合同预估价/最高投标限价等等。不要试图写代码去正则匹配金额,因为金额的表述很多样,优先获取到详情md文件(或者html)后,使用`takeMoney`工具进行获取提取金额。\n(4)项目名称和项目金额必须对应,如果获取不到金额,将金额直接设置为null值。禁止联想生成项目金额。\n\n【要求三】\n(1)必须记录下每个项目的详情链接,记录到\"target_link\"字段中。\n\n输出结果为json,json结构如下\n```\n{\n \"results\": [\n\n {\n \"type\": \"比如房建市政-招标文公告\",\n\t\t\"project_name\": \"\",\n\t\t\"amount_yuan\": 0,\n\t\t\"date\": \"yyyy-MM-dd\",\n\t\t\"target_link\": \"http...\"\n\t }\n ]\n}\n```\n爬取思路\n 1. 先初步探索需要采集的内容\n 2. 根据实际情况,制定详细的采集计划,并将计划写入到plans.md文件中\n 3. 按照计划,委托给subagent去完成采集任务,不要自己去采集\n 4. 校验subagent的采集结果,复查计划进度\n 5. 计划完成后汇总结果,形成用户需要的数据", - "enabled": false, - "useBrowser": false, - "mode": "glm-5" - }, - { - "id": "task-1773227623709", - "city": "扬州市-农业工程-招标公告", - "prompt": "使用scrapling技能的fetch来爬取\nhttps://ggzyjyzx.yangzhou.gov.cn/jyxx/nygc/nyzbgg/index.html\n1. 农业工程板块【农业招标公告】模块\n\n按照以下要求进行:\n【要求一】获取列表数据:\n如果当前列表没有当天的数据,默认获取最新的1条数据。如果当前列表有多条当天数据,请获取当天的全部数据。将获取到的列表数据先存下来:\n【要求二】列表数据处理:\n(1)项目名称:必须要使用列表中的项目名称!而且必须先记住列表中的项目名称!不可以用其他项目名称来替代!记录到“project_name”字段中。\n(2)如果列表已经有金额,依据表头里的金额单位,比如“万元”,需要转为元,不需要打开详情页面去爬取项目金额,记录到“amount_yuan”字段中。\n如果列表没有金额,打开详情页去查看项目金额。记录到“amount_yuan”字段中。\n(3)项目金额:可能为合同预估价/最高投标限价等等。不要试图写代码去正则匹配金额,因为金额的表述很多样,优先获取到详情md文件(或者html)后,使用`takeMoney`工具进行获取提取金额。\n(4)项目名称和项目金额必须对应,如果获取不到金额,将金额直接设置为null值。禁止联想生成项目金额。\n\n【要求三】\n(1)必须记录下每个项目的详情链接,记录到\"target_link\"字段中。\n\n输出结果为json,json结构如下\n```\n{\n \"results\": [\n\n {\n \"type\": \"比如房建市政-招标文公告\",\n\t\t\"project_name\": \"\",\n\t\t\"amount_yuan\": 0,\n\t\t\"date\": \"yyyy-MM-dd\",\n\t\t\"target_link\": \"http...\"\n\t }\n ]\n}\n```\n爬取思路\n 1. 先初步探索需要采集的内容\n 2. 根据实际情况,制定详细的采集计划,并将计划写入到plans.md文件中\n 3. 按照计划,委托给subagent去完成采集任务,不要自己去采集\n 4. 校验subagent的采集结果,复查计划进度\n 5. 计划完成后汇总结果,形成用户需要的数据", - "enabled": false, - "useBrowser": false, - "mode": "glm-5" - }, - { - "id": "task-1773227798306", - "city": "泰州市-建设工程-招标公告", - "prompt": "使用scrapling技能的fetch来爬取\nhttp://ggzy.taizhou.gov.cn/jyxx/001001/001001001/secondPagejyxx.html\n1. 建设工程板块【招标公告】模块\n\n按照以下要求进行:\n【要求一】获取列表数据:\n如果当前列表没有当天的数据,默认获取最新的1条数据。如果当前列表有多条当天数据,请获取当天的全部数据。将获取到的列表数据先存下来:\n【要求二】列表数据处理:\n(1)项目名称:必须要使用列表中的项目名称!而且必须先记住列表中的项目名称!不可以用其他项目名称来替代!记录到“project_name”字段中。\n(2)如果列表已经有金额,依据表头里的金额单位,比如“万元”,需要转为元,不需要打开详情页面去爬取项目金额,记录到“amount_yuan”字段中。\n如果列表没有金额,打开详情页去查看项目金额。记录到“amount_yuan”字段中。\n(3)项目金额:可能为合同预估价/最高投标限价等等。不要试图写代码去正则匹配金额,因为金额的表述很多样,优先获取到详情md文件(或者html)后,使用`takeMoney`工具进行获取提取金额。\n(4)项目名称和项目金额必须对应,如果获取不到金额,将金额直接设置为null值。禁止联想生成项目金额。\n\n【要求三】\n(1)必须记录下每个项目的详情链接,记录到\"target_link\"字段中。\n\n输出结果为json,json结构如下\n```\n{\n \"results\": [\n\n {\n \"type\": \"比如房建市政-招标文公告\",\n\t\t\"project_name\": \"\",\n\t\t\"amount_yuan\": 0,\n\t\t\"date\": \"yyyy-MM-dd\",\n\t\t\"target_link\": \"http...\"\n\t }\n ]\n}\n```\n爬取思路\n 1. 先初步探索需要采集的内容\n 2. 根据实际情况,制定详细的采集计划,并将计划写入到plans.md文件中\n 3. 按照计划,委托给subagent去完成采集任务,不要自己去采集\n 4. 校验subagent的采集结果,复查计划进度\n 5. 计划完成后汇总结果,形成用户需要的数据", - "enabled": false, - "useBrowser": false, - "mode": "glm-5" - }, - { - "id": "task-1773227859708", - "city": "泰州市-能源工程-招标公告", - "prompt": "使用scrapling技能的fetch来爬取\nhttp://ggzy.taizhou.gov.cn/jyxx/001013/001013001/secondPagejyxx.html\n1. 能源工程板块【招标公告】模块\n\n按照以下要求进行:\n【要求一】获取列表数据:\n如果当前列表没有当天的数据,默认获取最新的1条数据。如果当前列表有多条当天数据,请获取当天的全部数据。将获取到的列表数据先存下来:\n【要求二】列表数据处理:\n(1)项目名称:必须要使用列表中的项目名称!而且必须先记住列表中的项目名称!不可以用其他项目名称来替代!记录到“project_name”字段中。\n(2)如果列表已经有金额,依据表头里的金额单位,比如“万元”,需要转为元,不需要打开详情页面去爬取项目金额,记录到“amount_yuan”字段中。\n如果列表没有金额,打开详情页去查看项目金额。记录到“amount_yuan”字段中。\n(3)项目金额:可能为合同预估价/最高投标限价等等。不要试图写代码去正则匹配金额,因为金额的表述很多样,优先获取到详情md文件(或者html)后,使用`takeMoney`工具进行获取提取金额。\n(4)项目名称和项目金额必须对应,如果获取不到金额,将金额直接设置为null值。禁止联想生成项目金额。\n\n【要求三】\n(1)必须记录下每个项目的详情链接,记录到\"target_link\"字段中。\n\n输出结果为json,json结构如下\n```\n{\n \"results\": [\n\n {\n \"type\": \"比如房建市政-招标文公告\",\n\t\t\"project_name\": \"\",\n\t\t\"amount_yuan\": 0,\n\t\t\"date\": \"yyyy-MM-dd\",\n\t\t\"target_link\": \"http...\"\n\t }\n ]\n}\n```\n爬取思路\n 1. 先初步探索需要采集的内容\n 2. 根据实际情况,制定详细的采集计划,并将计划写入到plans.md文件中\n 3. 按照计划,委托给subagent去完成采集任务,不要自己去采集\n 4. 校验subagent的采集结果,复查计划进度\n 5. 计划完成后汇总结果,形成用户需要的数据", - "enabled": false, - "useBrowser": false, - "mode": "glm-5" - }, - { - "id": "task-1773227916651", - "city": "泰州市-交通工程-招标公告", - "prompt": "使用scrapling技能的fetch来爬取\nhttp://ggzy.taizhou.gov.cn/jyxx/001002/001002001/secondPagejyxx.html\n1. 交通工程板块【招标公告】模块\n\n按照以下要求进行:\n【要求一】获取列表数据:\n如果当前列表没有当天的数据,默认获取最新的1条数据。如果当前列表有多条当天数据,请获取当天的全部数据。将获取到的列表数据先存下来:\n【要求二】列表数据处理:\n(1)项目名称:必须要使用列表中的项目名称!而且必须先记住列表中的项目名称!不可以用其他项目名称来替代!记录到“project_name”字段中。\n(2)如果列表已经有金额,依据表头里的金额单位,比如“万元”,需要转为元,不需要打开详情页面去爬取项目金额,记录到“amount_yuan”字段中。\n如果列表没有金额,打开详情页去查看项目金额。记录到“amount_yuan”字段中。\n(3)项目金额:可能为合同预估价/最高投标限价等等。不要试图写代码去正则匹配金额,因为金额的表述很多样,优先获取到详情md文件(或者html)后,使用`takeMoney`工具进行获取提取金额。\n(4)项目名称和项目金额必须对应,如果获取不到金额,将金额直接设置为null值。禁止联想生成项目金额。\n\n【要求三】\n(1)必须记录下每个项目的详情链接,记录到\"target_link\"字段中。\n\n输出结果为json,json结构如下\n```\n{\n \"results\": [\n\n {\n \"type\": \"比如房建市政-招标文公告\",\n\t\t\"project_name\": \"\",\n\t\t\"amount_yuan\": 0,\n\t\t\"date\": \"yyyy-MM-dd\",\n\t\t\"target_link\": \"http...\"\n\t }\n ]\n}\n```\n爬取思路\n 1. 先初步探索需要采集的内容\n 2. 根据实际情况,制定详细的采集计划,并将计划写入到plans.md文件中\n 3. 按照计划,委托给subagent去完成采集任务,不要自己去采集\n 4. 校验subagent的采集结果,复查计划进度\n 5. 计划完成后汇总结果,形成用户需要的数据", - "enabled": false, - "useBrowser": false, - "mode": "glm-5" - }, - { - "id": "task-1773228017356", - "city": "泰州市-水利工程-招标公告", - "prompt": "使用scrapling技能的fetch来爬取\nhttp://ggzy.taizhou.gov.cn/jyxx/001003/001003001/secondPagejyxx.html\n1. 水利工程板块【招标公告】模块\n\n按照以下要求进行:\n【要求一】获取列表数据:\n如果当前列表没有当天的数据,默认获取最新的1条数据。如果当前列表有多条当天数据,请获取当天的全部数据。将获取到的列表数据先存下来:\n【要求二】列表数据处理:\n(1)项目名称:必须要使用列表中的项目名称!而且必须先记住列表中的项目名称!不可以用其他项目名称来替代!记录到“project_name”字段中。\n(2)如果列表已经有金额,依据表头里的金额单位,比如“万元”,需要转为元,不需要打开详情页面去爬取项目金额,记录到“amount_yuan”字段中。\n如果列表没有金额,打开详情页去查看项目金额。记录到“amount_yuan”字段中。\n(3)项目金额:可能为合同预估价/最高投标限价等等。不要试图写代码去正则匹配金额,因为金额的表述很多样,优先获取到详情md文件(或者html)后,使用`takeMoney`工具进行获取提取金额。\n(4)项目名称和项目金额必须对应,如果获取不到金额,将金额直接设置为null值。禁止联想生成项目金额。\n\n【要求三】\n(1)必须记录下每个项目的详情链接,记录到\"target_link\"字段中。\n\n输出结果为json,json结构如下\n```\n{\n \"results\": [\n\n {\n \"type\": \"比如房建市政-招标文公告\",\n\t\t\"project_name\": \"\",\n\t\t\"amount_yuan\": 0,\n\t\t\"date\": \"yyyy-MM-dd\",\n\t\t\"target_link\": \"http...\"\n\t }\n ]\n}\n```\n爬取思路\n 1. 先初步探索需要采集的内容\n 2. 根据实际情况,制定详细的采集计划,并将计划写入到plans.md文件中\n 3. 按照计划,委托给subagent去完成采集任务,不要自己去采集\n 4. 校验subagent的采集结果,复查计划进度\n 5. 计划完成后汇总结果,形成用户需要的数据", - "enabled": false, - "useBrowser": false, - "mode": "glm-5" - }, - { - "id": "task-1773228065067", - "city": "泰州市-农业工程-招标公告", - "prompt": "使用scrapling技能的fetch来爬取\nhttp://ggzy.taizhou.gov.cn/jyxx/001012/001012001/secondPagejyxx.html\n1. 农业工程板块【招标公告】模块\n\n按照以下要求进行:\n【要求一】获取列表数据:\n如果当前列表没有当天的数据,默认获取最新的1条数据。如果当前列表有多条当天数据,请获取当天的全部数据。将获取到的列表数据先存下来:\n【要求二】列表数据处理:\n(1)项目名称:必须要使用列表中的项目名称!而且必须先记住列表中的项目名称!不可以用其他项目名称来替代!记录到“project_name”字段中。\n(2)如果列表已经有金额,依据表头里的金额单位,比如“万元”,需要转为元,不需要打开详情页面去爬取项目金额,记录到“amount_yuan”字段中。\n如果列表没有金额,打开详情页去查看项目金额。记录到“amount_yuan”字段中。\n(3)项目金额:可能为合同预估价/最高投标限价等等。不要试图写代码去正则匹配金额,因为金额的表述很多样,优先获取到详情md文件(或者html)后,使用`takeMoney`工具进行获取提取金额。\n(4)项目名称和项目金额必须对应,如果获取不到金额,将金额直接设置为null值。禁止联想生成项目金额。\n\n【要求三】\n(1)必须记录下每个项目的详情链接,记录到\"target_link\"字段中。\n\n输出结果为json,json结构如下\n```\n{\n \"results\": [\n\n {\n \"type\": \"比如房建市政-招标文公告\",\n\t\t\"project_name\": \"\",\n\t\t\"amount_yuan\": 0,\n\t\t\"date\": \"yyyy-MM-dd\",\n\t\t\"target_link\": \"http...\"\n\t }\n ]\n}\n```\n爬取思路\n 1. 先初步探索需要采集的内容\n 2. 根据实际情况,制定详细的采集计划,并将计划写入到plans.md文件中\n 3. 按照计划,委托给subagent去完成采集任务,不要自己去采集\n 4. 校验subagent的采集结果,复查计划进度\n 5. 计划完成后汇总结果,形成用户需要的数据", - "enabled": false, - "useBrowser": false, - "mode": "glm-5" - }, - { - "id": "task-1773228205941", - "city": "宿迁市-招标计划提前发布", - "prompt": "使用scrapling技能的fetch来爬取\nhttps://ggzy.xzspj.suqian.gov.cn/jyxx/001010/tradeInfo.html\n1. 招标计划提前发布板块项目信息\n\n按照以下要求进行:\n【要求一】获取列表数据:\n如果当前列表没有当天的数据,默认获取最新的1条数据。如果当前列表有多条当天数据,请获取当天的全部数据。将获取到的列表数据先存下来:\n【要求二】列表数据处理:\n(1)项目名称:必须要使用列表中的项目名称!而且必须先记住列表中的项目名称!不可以用其他项目名称来替代!记录到“project_name”字段中。\n(2)如果列表已经有金额,依据表头里的金额单位,比如“万元”,需要转为元,不需要打开详情页面去爬取项目金额,记录到“amount_yuan”字段中。\n如果列表没有金额,打开详情页去查看项目金额。记录到“amount_yuan”字段中。\n(3)项目金额:可能为合同预估价/最高投标限价等等。不要试图写代码去正则匹配金额,因为金额的表述很多样,优先获取到详情md文件(或者html)后,使用`takeMoney`工具进行获取提取金额。\n(4)项目名称和项目金额必须对应,如果获取不到金额,将金额直接设置为null值。禁止联想生成项目金额。\n\n【要求三】\n(1)必须记录下每个项目的详情链接,记录到\"target_link\"字段中。\n\n输出结果为json,json结构如下\n```\n{\n \"results\": [\n\n {\n \"type\": \"比如房建市政-招标文公告\",\n\t\t\"project_name\": \"\",\n\t\t\"amount_yuan\": 0,\n\t\t\"date\": \"yyyy-MM-dd\",\n\t\t\"target_link\": \"http...\"\n\t }\n ]\n}\n```\n爬取思路\n 1. 先初步探索需要采集的内容\n 2. 根据实际情况,制定详细的采集计划,并将计划写入到plans.md文件中\n 3. 按照计划,委托给subagent去完成采集任务,不要自己去采集\n 4. 校验subagent的采集结果,复查计划进度\n 5. 计划完成后汇总结果,形成用户需要的数据", - "enabled": false, - "useBrowser": false, - "mode": "glm-5" - }, - { - "id": "task-1773228260574", - "city": "宿迁市-建设工程-招标预公告", - "prompt": "使用scrapling技能的fetch来爬取\nhttps://ggzy.xzspj.suqian.gov.cn/jyxx/001001/001001010/tradeInfo.html\n1. 建设工程板块【招标预公告】模块\n\n按照以下要求进行:\n【要求一】获取列表数据:\n如果当前列表没有当天的数据,默认获取最新的1条数据。如果当前列表有多条当天数据,请获取当天的全部数据。将获取到的列表数据先存下来:\n【要求二】列表数据处理:\n(1)项目名称:必须要使用列表中的项目名称!而且必须先记住列表中的项目名称!不可以用其他项目名称来替代!记录到“project_name”字段中。\n(2)如果列表已经有金额,依据表头里的金额单位,比如“万元”,需要转为元,不需要打开详情页面去爬取项目金额,记录到“amount_yuan”字段中。\n如果列表没有金额,打开详情页去查看项目金额。记录到“amount_yuan”字段中。\n(3)项目金额:可能为合同预估价/最高投标限价等等。不要试图写代码去正则匹配金额,因为金额的表述很多样,优先获取到详情md文件(或者html)后,使用`takeMoney`工具进行获取提取金额。\n(4)项目名称和项目金额必须对应,如果获取不到金额,将金额直接设置为null值。禁止联想生成项目金额。\n\n【要求三】\n(1)必须记录下每个项目的详情链接,记录到\"target_link\"字段中。\n\n输出结果为json,json结构如下\n```\n{\n \"results\": [\n\n {\n \"type\": \"比如房建市政-招标文公告\",\n\t\t\"project_name\": \"\",\n\t\t\"amount_yuan\": 0,\n\t\t\"date\": \"yyyy-MM-dd\",\n\t\t\"target_link\": \"http...\"\n\t }\n ]\n}\n```\n爬取思路\n 1. 先初步探索需要采集的内容\n 2. 根据实际情况,制定详细的采集计划,并将计划写入到plans.md文件中\n 3. 按照计划,委托给subagent去完成采集任务,不要自己去采集\n 4. 校验subagent的采集结果,复查计划进度\n 5. 计划完成后汇总结果,形成用户需要的数据", - "enabled": false, - "useBrowser": false, - "mode": "glm-5" - }, - { - "id": "task-1773228334419", - "city": "宿迁市-建设工程-招标公告/资审公告", - "prompt": "使用scrapling技能的fetch来爬取\nhttps://ggzy.xzspj.suqian.gov.cn/jyxx/001001/001001001/tradeInfo.html\n1. 建设工程板块【招标公告/资审公告】模块\n\n按照以下要求进行:\n【要求一】获取列表数据:\n如果当前列表没有当天的数据,默认获取最新的1条数据。如果当前列表有多条当天数据,请获取当天的全部数据。将获取到的列表数据先存下来:\n【要求二】列表数据处理:\n(1)项目名称:必须要使用列表中的项目名称!而且必须先记住列表中的项目名称!不可以用其他项目名称来替代!记录到“project_name”字段中。\n(2)如果列表已经有金额,依据表头里的金额单位,比如“万元”,需要转为元,不需要打开详情页面去爬取项目金额,记录到“amount_yuan”字段中。\n如果列表没有金额,打开详情页去查看项目金额。记录到“amount_yuan”字段中。\n(3)项目金额:可能为合同预估价/最高投标限价等等。不要试图写代码去正则匹配金额,因为金额的表述很多样,优先获取到详情md文件(或者html)后,使用`takeMoney`工具进行获取提取金额。\n(4)项目名称和项目金额必须对应,如果获取不到金额,将金额直接设置为null值。禁止联想生成项目金额。\n\n【要求三】\n(1)必须记录下每个项目的详情链接,记录到\"target_link\"字段中。\n\n输出结果为json,json结构如下\n```\n{\n \"results\": [\n\n {\n \"type\": \"比如房建市政-招标文公告\",\n\t\t\"project_name\": \"\",\n\t\t\"amount_yuan\": 0,\n\t\t\"date\": \"yyyy-MM-dd\",\n\t\t\"target_link\": \"http...\"\n\t }\n ]\n}\n```\n爬取思路\n 1. 先初步探索需要采集的内容\n 2. 根据实际情况,制定详细的采集计划,并将计划写入到plans.md文件中\n 3. 按照计划,委托给subagent去完成采集任务,不要自己去采集\n 4. 校验subagent的采集结果,复查计划进度\n 5. 计划完成后汇总结果,形成用户需要的数据", - "enabled": false, - "useBrowser": false, - "mode": "glm-5" - }, - { - "id": "task-1773229198813", - "city": "宿迁市-交通工程-招标公告/资审公告", - "prompt": "使用scrapling技能的fetch来爬取\nhttps://ggzy.xzspj.suqian.gov.cn/jyxx/001002/001002001/tradeInfo.html\n1. 交通工程板块【招标公告/资审公告】模块\n\n按照以下要求进行:\n【要求一】获取列表数据:\n如果当前列表没有当天的数据,默认获取最新的1条数据。如果当前列表有多条当天数据,请获取当天的全部数据。将获取到的列表数据先存下来:\n【要求二】列表数据处理:\n(1)项目名称:必须要使用列表中的项目名称!而且必须先记住列表中的项目名称!不可以用其他项目名称来替代!记录到“project_name”字段中。\n(2)如果列表已经有金额,依据表头里的金额单位,比如“万元”,需要转为元,不需要打开详情页面去爬取项目金额,记录到“amount_yuan”字段中。\n如果列表没有金额,打开详情页去查看项目金额。记录到“amount_yuan”字段中。\n(3)项目金额:可能为合同预估价/最高投标限价等等。不要试图写代码去正则匹配金额,因为金额的表述很多样,优先获取到详情md文件(或者html)后,使用`takeMoney`工具进行获取提取金额。\n(4)项目名称和项目金额必须对应,如果获取不到金额,将金额直接设置为null值。禁止联想生成项目金额。\n\n【要求三】\n(1)必须记录下每个项目的详情链接,记录到\"target_link\"字段中。\n\n输出结果为json,json结构如下\n```\n{\n \"results\": [\n\n {\n \"type\": \"比如房建市政-招标文公告\",\n\t\t\"project_name\": \"\",\n\t\t\"amount_yuan\": 0,\n\t\t\"date\": \"yyyy-MM-dd\",\n\t\t\"target_link\": \"http...\"\n\t }\n ]\n}\n```\n爬取思路\n 1. 先初步探索需要采集的内容\n 2. 根据实际情况,制定详细的采集计划,并将计划写入到plans.md文件中\n 3. 按照计划,委托给subagent去完成采集任务,不要自己去采集\n 4. 校验subagent的采集结果,复查计划进度\n 5. 计划完成后汇总结果,形成用户需要的数据", - "enabled": false, - "useBrowser": false, - "mode": "glm-5" - }, - { - "id": "task-1773229960773", - "city": "宿迁市-水利工程-招标公告/资审公告", - "prompt": "使用scrapling技能的fetch来爬取\nhttps://ggzy.xzspj.suqian.gov.cn/jyxx/001003/001003001/tradeInfo.html\n1. 水利工程板块【招标公告/资审公告】模块\n\n按照以下要求进行:\n【要求一】获取列表数据:\n如果当前列表没有当天的数据,默认获取最新的1条数据。如果当前列表有多条当天数据,请获取当天的全部数据。将获取到的列表数据先存下来:\n【要求二】列表数据处理:\n(1)项目名称:必须要使用列表中的项目名称!而且必须先记住列表中的项目名称!不可以用其他项目名称来替代!记录到“project_name”字段中。\n(2)如果列表已经有金额,依据表头里的金额单位,比如“万元”,需要转为元,不需要打开详情页面去爬取项目金额,记录到“amount_yuan”字段中。\n如果列表没有金额,打开详情页去查看项目金额。记录到“amount_yuan”字段中。\n(3)项目金额:可能为合同预估价/最高投标限价等等。不要试图写代码去正则匹配金额,因为金额的表述很多样,优先获取到详情md文件(或者html)后,使用`takeMoney`工具进行获取提取金额。\n(4)项目名称和项目金额必须对应,如果获取不到金额,将金额直接设置为null值。禁止联想生成项目金额。\n\n【要求三】\n(1)必须记录下每个项目的详情链接,记录到\"target_link\"字段中。\n\n输出结果为json,json结构如下\n```\n{\n \"results\": [\n\n {\n \"type\": \"比如房建市政-招标文公告\",\n\t\t\"project_name\": \"\",\n\t\t\"amount_yuan\": 0,\n\t\t\"date\": \"yyyy-MM-dd\",\n\t\t\"target_link\": \"http...\"\n\t }\n ]\n}\n```\n爬取思路\n 1. 先初步探索需要采集的内容\n 2. 根据实际情况,制定详细的采集计划,并将计划写入到plans.md文件中\n 3. 按照计划,委托给subagent去完成采集任务,不要自己去采集\n 4. 校验subagent的采集结果,复查计划进度\n 5. 计划完成后汇总结果,形成用户需要的数据", - "enabled": false, - "useBrowser": false, - "mode": "glm-5" - }, - { - "id": "task-1773282112257", - "city": "盐城市-工程建设-招标计划", - "prompt": "爬取\nhttps://ycggzy.jszwfw.gov.cn/tradeInfor?secondId=19&secondCode=transactionInfo\n1. 工程建设板块中的【招标计划】模块\n\n按照以下要求进行:\n【要求一】获取列表数据:\n如果当前列表没有当天的数据,默认获取最新的1条数据。如果当前列表有多条当天数据,请获取当天的全部数据。将获取到的列表数据先存下来:\n【要求二】列表数据处理:\n(1)项目名称:必须要使用列表中的项目名称!而且必须先记住列表中的项目名称!不可以用其他项目名称来替代!记录到“project_name”字段中。\n(2)如果列表已经有金额,依据表头里的金额单位,比如“万元”,需要转为元,不需要打开详情页面去爬取项目金额,记录到“amount_yuan”字段中。\n如果列表没有金额,打开详情页去查看项目金额。记录到“amount_yuan”字段中。\n(3)项目金额:可能为合同预估价/最高投标限价等等。不要试图写代码去正则匹配金额,因为金额的表述很多样,优先获取到详情md文件(或者html)后,使用`takeMoney`工具进行获取提取金额。\n(4)项目名称和项目金额必须对应,如果获取不到金额,将金额直接设置为null值。禁止联想生成项目金额。\n\n【要求三】\n(1)必须记录下每个项目的详情链接,记录到\"target_link\"字段中。\n\n输出结果为json,json结构如下\n```\n{\n \"results\": [\n\n {\n \"type\": \"比如房建市政-招标文公告\",\n\t\t\"project_name\": \"\",\n\t\t\"amount_yuan\": 0,\n\t\t\"date\": \"yyyy-MM-dd\",\n\t\t\"target_link\": \"http...\"\n\t }\n ]\n}\n```\n## 采集方法\n1. 使用 agent-browser 工具访问页\n2. 筛选工程建设 + 招标计划\n3. 点击项目进入详情页\n4. 获取详情页URL\n5. 保存详情页内容到文件\n6. 使用 takeMoney 工具提取金额", - "enabled": false, - "useBrowser": true, - "mode": "glm-5" - }, - { - "id": "task-1773282738792", - "city": "盐城市-工程建设-招标公告", - "prompt": "爬取\nhttps://ycggzy.jszwfw.gov.cn/tradeInfor?secondId=19&secondCode=transactionInfo\n1. 工程建设板块中的【招标公告】模块\n\n按照以下要求进行:\n【要求一】获取列表数据:\n如果当前列表没有当天的数据,默认获取最新的1条数据。如果当前列表有多条当天数据,请获取当天的全部数据。将获取到的列表数据先存下来:\n【要求二】列表数据处理:\n(1)项目名称:必须要使用列表中的项目名称!而且必须先记住列表中的项目名称!不可以用其他项目名称来替代!记录到“project_name”字段中。\n(2)如果列表已经有金额,依据表头里的金额单位,比如“万元”,需要转为元,不需要打开详情页面去爬取项目金额,记录到“amount_yuan”字段中。\n如果列表没有金额,打开详情页去查看项目金额。记录到“amount_yuan”字段中。\n(3)项目金额:可能为合同预估价/最高投标限价等等。不要试图写代码去正则匹配金额,因为金额的表述很多样,优先获取到详情md文件(或者html)后,使用`takeMoney`工具进行获取提取金额。\n(4)项目名称和项目金额必须对应,如果获取不到金额,将金额直接设置为null值。禁止联想生成项目金额。\n\n【要求三】\n(1)必须记录下每个项目的详情链接,记录到\"target_link\"字段中。\n\n输出结果为json,json结构如下\n```\n{\n \"results\": [\n\n {\n \"type\": \"比如工程建设-招标公告\",\n\t\t\"project_name\": \"\",\n\t\t\"amount_yuan\": 0,\n\t\t\"date\": \"yyyy-MM-dd\",\n\t\t\"target_link\": \"http...\"\n\t }\n ]\n}\n```\n## 采集方法\n1. 使用 agent-browser 工具访问页\n2. 筛选工程建设 + 招标公告\n3. 点击项目进入详情页\n4. 获取详情页URL\n5. 保存详情页内容到文件\n6. 使用 takeMoney 工具提取金额", - "enabled": false, - "useBrowser": true, - "mode": "glm-5" - }, - { - "id": "task-1773282811404", - "city": "盐城市-交通工程-招标计划", - "prompt": "爬取https://ycggzy.jszwfw.gov.cn/tradeInfor?secondId=19&secondCode=transactionInfo\n1. 交通工程板块【招标计划】模块\n\n按照以下要求进行:\n【要求一】获取列表数据:\n如果当前列表没有当天的数据,默认获取最新的1条数据。如果当前列表有多条当天数据,请获取当天的全部数据。将获取到的列表数据先存下来:\n【要求二】列表数据处理:\n(1)项目名称:必须要使用列表中的项目名称!而且必须先记住列表中的项目名称!不可以用其他项目名称来替代!记录到“project_name”字段中。\n(2)如果列表已经有金额,依据表头里的金额单位,比如“万元”,需要转为元,不需要打开详情页面去爬取项目金额,记录到“amount_yuan”字段中。\n如果列表没有金额,打开详情页去查看项目金额。记录到“amount_yuan”字段中。\n(3)项目金额:可能为合同预估价/最高投标限价等等。不要试图写代码去正则匹配金额,因为金额的表述很多样,优先获取到详情md文件(或者html)后,使用`takeMoney`工具进行获取提取金额。\n(4)项目名称和项目金额必须对应,如果获取不到金额,将金额直接设置为null值。禁止联想生成项目金额。\n\n【要求三】\n(1)必须记录下每个项目的详情链接,记录到\"target_link\"字段中。\n\n输出结果为json,json结构如下\n```\n{\n \"results\": [\n\n {\n \"type\": \"比如交通工程-招标计划\",\n\t\t\"project_name\": \"\",\n\t\t\"amount_yuan\": 0,\n\t\t\"date\": \"yyyy-MM-dd\",\n\t\t\"target_link\": \"http...\"\n\t }\n ]\n}\n```\n## 采集方法\n1. 使用 agent-browser 工具访问页\n2. 筛选交通工程 + 招标计划\n3. 点击项目进入详情页\n4. 获取详情页URL\n5. 保存详情页内容到文件\n6. 使用 takeMoney 工具提取金额", - "enabled": false, - "useBrowser": true, - "mode": "glm-5" - }, - { - "id": "task-1773282843104", - "city": "盐城市-交通工程-招标公告", - "prompt": "爬取\nhttps://ycggzy.jszwfw.gov.cn/tradeInfor?secondId=19&secondCode=transactionInfo\n1. 交通工程板块【招标公告】模块\n\n按照以下要求进行:\n【要求一】获取列表数据:\n如果当前列表没有当天的数据,默认获取最新的1条数据。如果当前列表有多条当天数据,请获取当天的全部数据。将获取到的列表数据先存下来:\n【要求二】列表数据处理:\n(1)项目名称:必须要使用列表中的项目名称!而且必须先记住列表中的项目名称!不可以用其他项目名称来替代!记录到“project_name”字段中。\n(2)如果列表已经有金额,依据表头里的金额单位,比如“万元”,需要转为元,不需要打开详情页面去爬取项目金额,记录到“amount_yuan”字段中。\n如果列表没有金额,打开详情页去查看项目金额。记录到“amount_yuan”字段中。\n(3)项目金额:可能为合同预估价/最高投标限价等等。不要试图写代码去正则匹配金额,因为金额的表述很多样,优先获取到详情md文件(或者html)后,使用`takeMoney`工具进行获取提取金额。\n(4)项目名称和项目金额必须对应,如果获取不到金额,将金额直接设置为null值。禁止联想生成项目金额。\n\n【要求三】\n(1)必须记录下每个项目的详情链接,记录到\"target_link\"字段中。\n\n输出结果为json,json结构如下\n```\n{\n \"results\": [\n\n {\n \"type\": \"比如交通工程-招标公告\",\n\t\t\"project_name\": \"\",\n\t\t\"amount_yuan\": 0,\n\t\t\"date\": \"yyyy-MM-dd\",\n\t\t\"target_link\": \"http...\"\n\t }\n ]\n}\n```\n## 采集方法\n1. 使用 agent-browser 工具访问页\n2. 筛选交通工程 + 招标公告\n3. 点击项目进入详情页\n4. 获取详情页URL\n5. 保存详情页内容到文件\n6. 使用 takeMoney 工具提取金额", - "enabled": false, - "useBrowser": true, - "mode": "glm-5" - }, - { - "id": "task-1773286430226", - "city": "盐城市-水利工程-招标计划", - "prompt": "爬取https://ycggzy.jszwfw.gov.cn/tradeInfor?secondId=19&secondCode=transactionInfo\n1. 水利工程板块【招标计划】模块\n\n按照以下要求进行:\n【要求一】获取列表数据:\n如果当前列表没有当天的数据,默认获取最新的1条数据。如果当前列表有多条当天数据,请获取当天的全部数据。将获取到的列表数据先存下来:\n【要求二】列表数据处理:\n(1)项目名称:必须要使用列表中的项目名称!而且必须先记住列表中的项目名称!不可以用其他项目名称来替代!记录到“project_name”字段中。\n(2)如果列表已经有金额,依据表头里的金额单位,比如“万元”,需要转为元,不需要打开详情页面去爬取项目金额,记录到“amount_yuan”字段中。\n如果列表没有金额,打开详情页去查看项目金额。记录到“amount_yuan”字段中。\n(3)项目金额:可能为合同预估价/最高投标限价等等。不要试图写代码去正则匹配金额,因为金额的表述很多样,优先获取到详情md文件(或者html)后,使用`takeMoney`工具进行获取提取金额。\n(4)项目名称和项目金额必须对应,如果获取不到金额,将金额直接设置为null值。禁止联想生成项目金额。\n\n【要求三】\n(1)必须记录下每个项目的详情链接,记录到\"target_link\"字段中。\n\n输出结果为json,json结构如下\n```\n{\n \"results\": [\n\n {\n \"type\": \"比如水利工程-招标计划\",\n\t\t\"project_name\": \"\",\n\t\t\"amount_yuan\": 0,\n\t\t\"date\": \"yyyy-MM-dd\",\n\t\t\"target_link\": \"http...\"\n\t }\n ]\n}\n```\n## 采集方法\n1. 使用 agent-browser 工具访问页\n2. 筛选水利工程-招标计划\n3. 点击项目进入详情页\n4. 获取详情页URL\n5. 保存详情页内容到文件\n6. 使用 takeMoney 工具提取金额", - "enabled": false, - "useBrowser": true, - "mode": "glm-5" - }, - { - "id": "task-1773286494770", - "city": "盐城市-水利工程-招标公告", - "prompt": "爬取https://ycggzy.jszwfw.gov.cn/tradeInfor?secondId=19&secondCode=transactionInfo\n1. 水利工程板块【招标公告】模块\n\n按照以下要求进行:\n【要求一】获取列表数据:\n如果当前列表没有当天的数据,默认获取最新的1条数据。如果当前列表有多条当天数据,请获取当天的全部数据。将获取到的列表数据先存下来:\n【要求二】列表数据处理:\n(1)项目名称:必须要使用列表中的项目名称!而且必须先记住列表中的项目名称!不可以用其他项目名称来替代!记录到“project_name”字段中。\n(2)如果列表已经有金额,依据表头里的金额单位,比如“万元”,需要转为元,不需要打开详情页面去爬取项目金额,记录到“amount_yuan”字段中。\n如果列表没有金额,打开详情页去查看项目金额。记录到“amount_yuan”字段中。\n(3)项目金额:可能为合同预估价/最高投标限价等等。不要试图写代码去正则匹配金额,因为金额的表述很多样,优先获取到详情md文件(或者html)后,使用`takeMoney`工具进行获取提取金额。\n(4)项目名称和项目金额必须对应,如果获取不到金额,将金额直接设置为null值。禁止联想生成项目金额。\n\n【要求三】\n(1)必须记录下每个项目的详情链接,记录到\"target_link\"字段中。\n\n输出结果为json,json结构如下\n```\n{\n \"results\": [\n\n {\n \"type\": \"比如水利工程-招标公告\",\n\t\t\"project_name\": \"\",\n\t\t\"amount_yuan\": 0,\n\t\t\"date\": \"yyyy-MM-dd\",\n\t\t\"target_link\": \"http...\"\n\t }\n ]\n}\n```\n## 采集方法\n1. 使用 agent-browser 工具访问页\n2. 筛选水利工程 + 招标公告\n3. 点击项目进入详情页\n4. 获取详情页URL\n5. 保存详情页内容到文件\n6. 使用 takeMoney 工具提取金额", - "enabled": false, - "useBrowser": true, - "mode": "glm-5" - }, - { - "id": "task-1773286562021", - "city": "盐城市-农业农村-招标计划", - "prompt": "爬取https://ycggzy.jszwfw.gov.cn/tradeInfor?secondId=19&secondCode=transactionInfo\n1. 农业农村板块【招标计划】模块\n\n按照以下要求进行:\n【要求一】获取列表数据:\n如果当前列表没有当天的数据,默认获取最新的1条数据。如果当前列表有多条当天数据,请获取当天的全部数据。将获取到的列表数据先存下来:\n【要求二】列表数据处理:\n(1)项目名称:必须要使用列表中的项目名称!而且必须先记住列表中的项目名称!不可以用其他项目名称来替代!记录到“project_name”字段中。\n(2)如果列表已经有金额,依据表头里的金额单位,比如“万元”,需要转为元,不需要打开详情页面去爬取项目金额,记录到“amount_yuan”字段中。\n如果列表没有金额,打开详情页去查看项目金额。记录到“amount_yuan”字段中。\n(3)项目金额:可能为合同预估价/最高投标限价等等。不要试图写代码去正则匹配金额,因为金额的表述很多样,优先获取到详情md文件(或者html)后,使用`takeMoney`工具进行获取提取金额。\n(4)项目名称和项目金额必须对应,如果获取不到金额,将金额直接设置为null值。禁止联想生成项目金额。\n\n【要求三】\n(1)必须记录下每个项目的详情链接,记录到\"target_link\"字段中。\n\n输出结果为json,json结构如下\n```\n{\n \"results\": [\n\n {\n \"type\": \"比如农业农村-招标计划\",\n\t\t\"project_name\": \"\",\n\t\t\"amount_yuan\": 0,\n\t\t\"date\": \"yyyy-MM-dd\",\n\t\t\"target_link\": \"http...\"\n\t }\n ]\n}\n```\n## 采集方法\n1. 使用 agent-browser 工具访问页\n2. 筛选农业农村 + 招标计划\n3. 点击项目进入详情页\n4. 获取详情页URL\n5. 保存详情页内容到文件\n6. 使用 takeMoney 工具提取金额", - "enabled": false, - "useBrowser": true, - "mode": "glm-5" - }, - { - "id": "task-1773286599089", - "city": "盐城市-农业农村-招标公告", - "prompt": "爬取https://ycggzy.jszwfw.gov.cn/tradeInfor?secondId=19&secondCode=transactionInfo\n1. 农业农村板块【招标公告】模块\n\n按照以下要求进行:\n【要求一】获取列表数据:\n如果当前列表没有当天的数据,默认获取最新的1条数据。如果当前列表有多条当天数据,请获取当天的全部数据。将获取到的列表数据先存下来:\n【要求二】列表数据处理:\n(1)项目名称:必须要使用列表中的项目名称!而且必须先记住列表中的项目名称!不可以用其他项目名称来替代!记录到“project_name”字段中。\n(2)如果列表已经有金额,依据表头里的金额单位,比如“万元”,需要转为元,不需要打开详情页面去爬取项目金额,记录到“amount_yuan”字段中。\n如果列表没有金额,打开详情页去查看项目金额。记录到“amount_yuan”字段中。\n(3)项目金额:可能为合同预估价/最高投标限价等等。不要试图写代码去正则匹配金额,因为金额的表述很多样,优先获取到详情md文件(或者html)后,使用`takeMoney`工具进行获取提取金额。\n(4)项目名称和项目金额必须对应,如果获取不到金额,将金额直接设置为null值。禁止联想生成项目金额。\n\n【要求三】\n(1)必须记录下每个项目的详情链接,记录到\"target_link\"字段中。\n\n输出结果为json,json结构如下\n```\n{\n \"results\": [\n\n {\n \"type\": \"比如农业农村-招标公告\",\n\t\t\"project_name\": \"\",\n\t\t\"amount_yuan\": 0,\n\t\t\"date\": \"yyyy-MM-dd\",\n\t\t\"target_link\": \"http...\"\n\t }\n ]\n}\n```\n## 采集方法\n1. 使用 agent-browser 工具访问页\n2. 筛选农业农村 + 招标公告\n3. 点击项目进入详情页\n4. 获取详情页URL\n5. 保存详情页内容到文件\n6. 使用 takeMoney 工具提取金额", - "enabled": false, - "useBrowser": true, - "mode": "glm-5" - }, - { - "id": "task-1773287068033", - "city": "苏州市-建设工程-招标预计划", - "prompt": "爬取http://ggzy.suzhou.gov.cn/jyxx/003001/tradeInfo.html\n1. 建设工程板块中的【招标预计划】模块\n\n按照以下要求进行:\n【要求一】获取列表数据:\n如果当前列表没有当天的数据,默认获取最新的1条数据。如果当前列表有多条当天数据,请获取当天的全部数据。将获取到的列表数据先存下来:\n【要求二】列表数据处理:\n(1)项目名称:必须要使用列表中的项目名称!而且必须先记住列表中的项目名称!不可以用其他项目名称来替代!记录到“project_name”字段中。\n(2)如果列表已经有金额,依据表头里的金额单位,比如“万元”,需要转为元,不需要打开详情页面去爬取项目金额,记录到“amount_yuan”字段中。\n如果列表没有金额,打开详情页去查看项目金额。记录到“amount_yuan”字段中。\n(3)项目金额:可能为合同预估价/最高投标限价等等。不要试图写代码去正则匹配金额,因为金额的表述很多样,优先获取到详情md文件(或者html)后,使用`takeMoney`工具进行获取提取金额。\n(4)项目名称和项目金额必须对应,如果获取不到金额,将金额直接设置为null值。禁止联想生成项目金额。\n\n【要求三】\n(1)必须记录下每个项目的详情链接,记录到\"target_link\"字段中。\n\n输出结果为json,json结构如下\n```\n{\n \"results\": [\n\n {\n \"type\": \"比如建设工程-招标预计划\",\n\t\t\"project_name\": \"\",\n\t\t\"amount_yuan\": 0,\n\t\t\"date\": \"yyyy-MM-dd\",\n\t\t\"target_link\": \"http...\"\n\t }\n ]\n}\n```\n## 采集方法\n1. 使用 agent-browser 工具访问页\n2. 筛选建设工程 + 招标预计划,筛选“发布时间”为“近三天”的\n3. 点击项目进入详情页\n4. 获取详情页URL\n5. 保存详情页内容到文件\n6. 使用 takeMoney 工具提取金额", - "enabled": false, - "useBrowser": true, - "mode": "glm-5" - }, - { - "id": "task-1773287206110", - "city": "苏州市-建设工程-招标公告/资审公告", - "prompt": "爬取http://ggzy.suzhou.gov.cn/jyxx/003001/tradeInfo.html\n1. 建设工程板块中的【招标公告/资审公告】模块\n\n按照以下要求进行:\n【要求一】获取列表数据:\n如果当前列表没有当天的数据,默认获取最新的1条数据。如果当前列表有多条当天数据,请获取当天的全部数据。将获取到的列表数据先存下来:\n【要求二】列表数据处理:\n(1)项目名称:必须要使用列表中的项目名称!而且必须先记住列表中的项目名称!不可以用其他项目名称来替代!记录到“project_name”字段中。\n(2)如果列表已经有金额,依据表头里的金额单位,比如“万元”,需要转为元,不需要打开详情页面去爬取项目金额,记录到“amount_yuan”字段中。\n如果列表没有金额,打开详情页去查看项目金额。记录到“amount_yuan”字段中。\n(3)项目金额:可能为合同预估价/最高投标限价等等。不要试图写代码去正则匹配金额,因为金额的表述很多样,优先获取到详情md文件(或者html)后,使用`takeMoney`工具进行获取提取金额。\n(4)项目名称和项目金额必须对应,如果获取不到金额,将金额直接设置为null值。禁止联想生成项目金额。\n\n【要求三】\n(1)必须记录下每个项目的详情链接,记录到\"target_link\"字段中。\n\n输出结果为json,json结构如下\n```\n{\n \"results\": [\n\n {\n \"type\": \"比如建设工程-招标公告/资审公告\",\n\t\t\"project_name\": \"\",\n\t\t\"amount_yuan\": 0,\n\t\t\"date\": \"yyyy-MM-dd\",\n\t\t\"target_link\": \"http...\"\n\t }\n ]\n}\n```\n## 采集方法\n1. 使用 agent-browser 工具访问页\n2. 筛选建设工程 + 招标公告/资审公告,筛选“发布时间”为“近三天”的\n3. 点击项目进入详情页\n4. 获取详情页URL\n5. 保存详情页内容到文件\n6. 使用 takeMoney 工具提取金额", - "enabled": false, - "useBrowser": true, - "mode": "glm-5" - }, - { - "id": "task-1773295605929", - "city": "苏州市-交通工程-招标预计划", - "prompt": "爬取http://ggzy.suzhou.gov.cn/jyxx/003001/tradeInfo.html\n1. 交通工程板块中的【招标预计划】模块\n\n按照以下要求进行:\n【要求一】获取列表数据:\n如果当前列表没有当天的数据,默认获取最新的1条数据。如果当前列表有多条当天数据,请获取当天的全部数据。将获取到的列表数据先存下来:\n【要求二】列表数据处理:\n(1)项目名称:必须要使用列表中的项目名称!而且必须先记住列表中的项目名称!不可以用其他项目名称来替代!记录到“project_name”字段中。\n(2)如果列表已经有金额,依据表头里的金额单位,比如“万元”,需要转为元,不需要打开详情页面去爬取项目金额,记录到“amount_yuan”字段中。\n如果列表没有金额,打开详情页去查看项目金额。记录到“amount_yuan”字段中。\n(3)项目金额:可能为合同预估价/最高投标限价等等。不要试图写代码去正则匹配金额,因为金额的表述很多样,优先获取到详情md文件(或者html)后,使用`takeMoney`工具进行获取提取金额。\n(4)项目名称和项目金额必须对应,如果获取不到金额,将金额直接设置为null值。禁止联想生成项目金额。\n\n【要求三】\n(1)必须记录下每个项目的详情链接,记录到\"target_link\"字段中。\n\n输出结果为json,json结构如下\n```\n{\n \"results\": [\n\n {\n \"type\": \"比如交通工程-招标预计划\",\n\t\t\"project_name\": \"\",\n\t\t\"amount_yuan\": 0,\n\t\t\"date\": \"yyyy-MM-dd\",\n\t\t\"target_link\": \"http...\"\n\t }\n ]\n}\n```\n## 采集方法\n1. 使用 agent-browser 工具访问页\n2. 筛选交通工程-招标预计划,筛选“发布时间”为“近三天”的\n3. 点击项目进入详情页\n4. 获取详情页URL\n5. 保存详情页内容到文件\n6. 使用 takeMoney 工具提取金额", - "enabled": false, - "useBrowser": true, - "mode": "glm-5" - }, - { - "id": "task-1773295651095", - "city": "苏州市-交通工程-招标公告", - "prompt": "爬取http://ggzy.suzhou.gov.cn/jyxx/003001/tradeInfo.html\n1. 交通工程板块中的【招标公告】模块\n\n按照以下要求进行:\n【要求一】获取列表数据:\n如果当前列表没有当天的数据,默认获取最新的1条数据。如果当前列表有多条当天数据,请获取当天的全部数据。将获取到的列表数据先存下来:\n【要求二】列表数据处理:\n(1)项目名称:必须要使用列表中的项目名称!而且必须先记住列表中的项目名称!不可以用其他项目名称来替代!记录到“project_name”字段中。\n(2)如果列表已经有金额,依据表头里的金额单位,比如“万元”,需要转为元,不需要打开详情页面去爬取项目金额,记录到“amount_yuan”字段中。\n如果列表没有金额,打开详情页去查看项目金额。记录到“amount_yuan”字段中。\n(3)项目金额:可能为合同预估价/最高投标限价等等。不要试图写代码去正则匹配金额,因为金额的表述很多样,优先获取到详情md文件(或者html)后,使用`takeMoney`工具进行获取提取金额。\n(4)项目名称和项目金额必须对应,如果获取不到金额,将金额直接设置为null值。禁止联想生成项目金额。\n\n【要求三】\n(1)必须记录下每个项目的详情链接,记录到\"target_link\"字段中。\n\n输出结果为json,json结构如下\n```\n{\n \"results\": [\n\n {\n \"type\": \"比如交通工程-招标公告\",\n\t\t\"project_name\": \"\",\n\t\t\"amount_yuan\": 0,\n\t\t\"date\": \"yyyy-MM-dd\",\n\t\t\"target_link\": \"http...\"\n\t }\n ]\n}\n```\n## 采集方法\n1. 使用 agent-browser 工具访问页\n2. 筛选交通工程 + 招标公告,筛选“发布时间”为“近三天”的\n3. 点击项目进入详情页\n4. 获取详情页URL\n5. 保存详情页内容到文件\n6. 使用 takeMoney 工具提取金额", - "enabled": false, - "useBrowser": true, - "mode": "glm-5" - }, - { - "id": "task-1773295707567", - "city": "苏州市-水利工程-招标预计划", - "prompt": "爬取http://ggzy.suzhou.gov.cn/jyxx/003001/tradeInfo.html\n1. 水利工程板块中的【招标预计划】模块\n\n按照以下要求进行:\n【要求一】获取列表数据:\n如果当前列表没有当天的数据,默认获取最新的1条数据。如果当前列表有多条当天数据,请获取当天的全部数据。将获取到的列表数据先存下来:\n【要求二】列表数据处理:\n(1)项目名称:必须要使用列表中的项目名称!而且必须先记住列表中的项目名称!不可以用其他项目名称来替代!记录到“project_name”字段中。\n(2)如果列表已经有金额,依据表头里的金额单位,比如“万元”,需要转为元,不需要打开详情页面去爬取项目金额,记录到“amount_yuan”字段中。\n如果列表没有金额,打开详情页去查看项目金额。记录到“amount_yuan”字段中。\n(3)项目金额:可能为合同预估价/最高投标限价等等。不要试图写代码去正则匹配金额,因为金额的表述很多样,优先获取到详情md文件(或者html)后,使用`takeMoney`工具进行获取提取金额。\n(4)项目名称和项目金额必须对应,如果获取不到金额,将金额直接设置为null值。禁止联想生成项目金额。\n\n【要求三】\n(1)必须记录下每个项目的详情链接,记录到\"target_link\"字段中。\n\n输出结果为json,json结构如下\n```\n{\n \"results\": [\n\n {\n \"type\": \"比如水利工程-招标预计划\",\n\t\t\"project_name\": \"\",\n\t\t\"amount_yuan\": 0,\n\t\t\"date\": \"yyyy-MM-dd\",\n\t\t\"target_link\": \"http...\"\n\t }\n ]\n}\n```\n## 采集方法\n1. 使用 agent-browser 工具访问页\n2. 筛选水利工程-招标预计划, 筛选“发布时间”为“近三天”的\n3. 点击项目进入详情页\n4. 获取详情页URL\n5. 保存详情页内容到文件\n6. 使用 takeMoney 工具提取金额", - "enabled": false, - "useBrowser": true, - "mode": "glm-5" - }, - { - "id": "task-1773295748272", - "city": "苏州市-水利工程-招标公告", - "prompt": "爬取http://ggzy.suzhou.gov.cn/jyxx/003001/tradeInfo.html\n1. 水利工程板块中的【招标公告】模块\n\n按照以下要求进行:\n【要求一】获取列表数据:\n如果当前列表没有当天的数据,默认获取最新的1条数据。如果当前列表有多条当天数据,请获取当天的全部数据。将获取到的列表数据先存下来:\n【要求二】列表数据处理:\n(1)项目名称:必须要使用列表中的项目名称!而且必须先记住列表中的项目名称!不可以用其他项目名称来替代!记录到“project_name”字段中。\n(2)如果列表已经有金额,依据表头里的金额单位,比如“万元”,需要转为元,不需要打开详情页面去爬取项目金额,记录到“amount_yuan”字段中。\n如果列表没有金额,打开详情页去查看项目金额。记录到“amount_yuan”字段中。\n(3)项目金额:可能为合同预估价/最高投标限价等等。不要试图写代码去正则匹配金额,因为金额的表述很多样,优先获取到详情md文件(或者html)后,使用`takeMoney`工具进行获取提取金额。\n(4)项目名称和项目金额必须对应,如果获取不到金额,将金额直接设置为null值。禁止联想生成项目金额。\n\n【要求三】\n(1)必须记录下每个项目的详情链接,记录到\"target_link\"字段中。\n\n输出结果为json,json结构如下\n```\n{\n \"results\": [\n\n {\n \"type\": \"比如水利工程-招标公告\",\n\t\t\"project_name\": \"\",\n\t\t\"amount_yuan\": 0,\n\t\t\"date\": \"yyyy-MM-dd\",\n\t\t\"target_link\": \"http...\"\n\t }\n ]\n}\n```\n## 采集方法\n1. 使用 agent-browser 工具访问页\n2. 筛选水利工程 + 招标公告,筛选“发布时间”为“近三天”\n3. 点击项目进入详情页\n4. 获取详情页URL\n5. 保存详情页内容到文件\n6. 使用 takeMoney 工具提取金额", - "enabled": false, - "useBrowser": true, - "mode": "glm-5" - }, - { - "id": "task-1773367789161", - "city": "省公共平台-建设工程-招标计划/招标计划变更公告", - "prompt": "爬取http://jsggzy.jszwfw.gov.cn/jyxx/tradeInfonew.html?type=jsgc\n1. 建设工程板块中的【招标计划/招标计划变更公告】模块\n\n按照以下要求进行:\n【要求一】获取列表数据:\n如果当前列表没有当天的数据,默认获取最新的1条数据。如果当前列表有多条当天数据,请获取当天的全部数据。将获取到的列表数据先存下来:\n【要求二】列表数据处理:\n(1)项目名称:必须要使用列表中的项目名称!而且必须先记住列表中的项目名称!不可以用其他项目名称来替代!记录到“project_name”字段中。\n(2)如果列表已经有金额,依据表头里的金额单位,比如“万元”,需要转为元,不需要打开详情页面去爬取项目金额,记录到“amount_yuan”字段中。\n如果列表没有金额,打开详情页去查看项目金额。记录到“amount_yuan”字段中。\n(3)项目金额:可能为合同预估价/最高投标限价等等。不要试图写代码去正则匹配金额,因为金额的表述很多样,优先获取到详情md文件(或者html)后,使用`takeMoney`工具进行获取提取金额。\n(4)项目名称和项目金额必须对应,如果获取不到金额,将金额直接设置为null值。禁止联想生成项目金额。\n\n【要求三】\n(1)必须记录下每个项目的详情链接,记录到\"target_link\"字段中。\n\n输出结果为json,json结构如下\n```\n{\n \"results\": [\n\n {\n \"type\": \"比如建设工程-招标计划/招标计划变更公告\",\n\t\t\"project_name\": \"\",\n\t\t\"amount_yuan\": 0,\n\t\t\"date\": \"yyyy-MM-dd\",\n\t\t\"target_link\": \"http...\"\n\t }\n ]\n}\n```\n## 采集方法\n1. 使用 agent-browser 工具访问页\n2. 筛选建设工程 + 招标计划/招标计划变更公告,筛选“发布时间”为“近三天”\n3. 点击项目进入详情页\n4. 获取详情页URL\n5. 保存详情页内容到文件\n6. 使用 takeMoney 工具提取金额", - "enabled": false, - "useBrowser": true, - "mode": "glm-5" - }, - { - "id": "task-1773368044054", - "city": "省公共平台-建设工程-招标公告/资审公告", - "prompt": "爬取http://jsggzy.jszwfw.gov.cn/jyxx/tradeInfonew.html?type=jsgc\n1. 建设工程板块中的【招标公告/资审公告】模块\n\n按照以下要求进行:\n【要求一】获取列表数据:\n如果当前列表没有当天的数据,默认获取最新的1条数据。如果当前列表有多条当天数据,请获取当天的全部数据。将获取到的列表数据先存下来:\n【要求二】列表数据处理:\n(1)项目名称:必须要使用列表中的项目名称!而且必须先记住列表中的项目名称!不可以用其他项目名称来替代!记录到“project_name”字段中。\n(2)如果列表已经有金额,依据表头里的金额单位,比如“万元”,需要转为元,不需要打开详情页面去爬取项目金额,记录到“amount_yuan”字段中。\n如果列表没有金额,打开详情页去查看项目金额。记录到“amount_yuan”字段中。\n(3)项目金额:可能为合同预估价/最高投标限价等等。不要试图写代码去正则匹配金额,因为金额的表述很多样,优先获取到详情md文件(或者html)后,使用`takeMoney`工具进行获取提取金额。\n(4)项目名称和项目金额必须对应,如果获取不到金额,将金额直接设置为null值。禁止联想生成项目金额。\n\n【要求三】\n(1)必须记录下每个项目的详情链接,记录到\"target_link\"字段中。\n\n输出结果为json,json结构如下\n```\n{\n \"results\": [\n\n {\n \"type\": \"比如建设工程-招标公告/资审公告\",\n\t\t\"project_name\": \"\",\n\t\t\"amount_yuan\": 0,\n\t\t\"date\": \"yyyy-MM-dd\",\n\t\t\"target_link\": \"http...\"\n\t }\n ]\n}\n```\n## 采集方法\n1. 使用 agent-browser 工具访问页\n2. 筛选建设工程 + 招标公告/资审公告,筛选“发布时间”为“近三天”\n3. 点击项目进入详情页\n4. 获取详情页URL\n5. 保存详情页内容到文件\n6. 使用 takeMoney 工具提取金额", - "enabled": false, - "useBrowser": true, - "mode": "glm-5" - }, - { - "id": "task-1773369115954", - "city": "省公共平台-交通工程-招标计划/招标计划变更公告", - "prompt": "爬取http://jsggzy.jszwfw.gov.cn/jyxx/tradeInfonew.html?type=jsgc\n1. 交通工程板块中的【招标计划/招标计划变更公告】模块\n\n按照以下要求进行:\n【要求一】获取列表数据:\n如果当前列表没有当天的数据,默认获取最新的1条数据。如果当前列表有多条当天数据,请获取当天的全部数据。将获取到的列表数据先存下来:\n【要求二】列表数据处理:\n(1)项目名称:必须要使用列表中的项目名称!而且必须先记住列表中的项目名称!不可以用其他项目名称来替代!记录到“project_name”字段中。\n(2)如果列表已经有金额,依据表头里的金额单位,比如“万元”,需要转为元,不需要打开详情页面去爬取项目金额,记录到“amount_yuan”字段中。\n如果列表没有金额,打开详情页去查看项目金额。记录到“amount_yuan”字段中。\n(3)项目金额:可能为合同预估价/最高投标限价等等。不要试图写代码去正则匹配金额,因为金额的表述很多样,优先获取到详情md文件(或者html)后,使用`takeMoney`工具进行获取提取金额。\n(4)项目名称和项目金额必须对应,如果获取不到金额,将金额直接设置为null值。禁止联想生成项目金额。\n\n【要求三】\n(1)必须记录下每个项目的详情链接,记录到\"target_link\"字段中。\n\n输出结果为json,json结构如下\n```\n{\n \"results\": [\n\n {\n \"type\": \"比如交通工程-招标计划/招标计划变更公告\",\n\t\t\"project_name\": \"\",\n\t\t\"amount_yuan\": 0,\n\t\t\"date\": \"yyyy-MM-dd\",\n\t\t\"target_link\": \"http...\"\n\t }\n ]\n}\n```\n## 采集方法\n1. 使用 agent-browser 工具访问页\n2. 筛选交通工程 + 招标计划/招标计划变更公告,筛选“发布时间”为“近三天”\n3. 点击项目进入详情页\n4. 获取详情页URL\n5. 保存详情页内容到文件\n6. 使用 takeMoney 工具提取金额", - "enabled": false, - "useBrowser": true, - "mode": "glm-5" - }, - { - "id": "task-1773369189083", - "city": "省公共平台-交通工程-招标公告", - "prompt": "爬取http://jsggzy.jszwfw.gov.cn/jyxx/tradeInfonew.html?type=jsgc\n1. 交通工程板块中的【招标公告】模块\n\n按照以下要求进行:\n【要求一】获取列表数据:\n如果当前列表没有当天的数据,默认获取最新的1条数据。如果当前列表有多条当天数据,请获取当天的全部数据。将获取到的列表数据先存下来:\n【要求二】列表数据处理:\n(1)项目名称:必须要使用列表中的项目名称!而且必须先记住列表中的项目名称!不可以用其他项目名称来替代!记录到“project_name”字段中。\n(2)如果列表已经有金额,依据表头里的金额单位,比如“万元”,需要转为元,不需要打开详情页面去爬取项目金额,记录到“amount_yuan”字段中。\n如果列表没有金额,打开详情页去查看项目金额。记录到“amount_yuan”字段中。\n(3)项目金额:可能为合同预估价/最高投标限价等等。不要试图写代码去正则匹配金额,因为金额的表述很多样,优先获取到详情md文件(或者html)后,使用`takeMoney`工具进行获取提取金额。\n(4)项目名称和项目金额必须对应,如果获取不到金额,将金额直接设置为null值。禁止联想生成项目金额。\n\n【要求三】\n(1)必须记录下每个项目的详情链接,记录到\"target_link\"字段中。\n\n输出结果为json,json结构如下\n```\n{\n \"results\": [\n\n {\n \"type\": \"比如交通工程-招标公告\",\n\t\t\"project_name\": \"\",\n\t\t\"amount_yuan\": 0,\n\t\t\"date\": \"yyyy-MM-dd\",\n\t\t\"target_link\": \"http...\"\n\t }\n ]\n}\n```\n## 采集方法\n1. 使用 agent-browser 工具访问页\n2. 筛选交通工程 + 招标公告,筛选“发布时间”为“近三天”\n3. 点击项目进入详情页\n4. 获取详情页URL\n5. 保存详情页内容到文件\n6. 使用 takeMoney 工具提取金额", - "enabled": false, - "useBrowser": true, - "mode": "glm-5" - }, - { - "id": "task-1773369264817", - "city": "省公共平台-水利工程-招标计划/招标计划变更公告", - "prompt": "爬取http://jsggzy.jszwfw.gov.cn/jyxx/tradeInfonew.html?type=jsgc\n1. 水利工程板块中的【招标计划/招标计划变更公告】模块\n\n按照以下要求进行:\n【要求一】获取列表数据:\n如果当前列表没有当天的数据,默认获取最新的1条数据。如果当前列表有多条当天数据,请获取当天的全部数据。将获取到的列表数据先存下来:\n【要求二】列表数据处理:\n(1)项目名称:必须要使用列表中的项目名称!而且必须先记住列表中的项目名称!不可以用其他项目名称来替代!记录到“project_name”字段中。\n(2)如果列表已经有金额,依据表头里的金额单位,比如“万元”,需要转为元,不需要打开详情页面去爬取项目金额,记录到“amount_yuan”字段中。\n如果列表没有金额,打开详情页去查看项目金额。记录到“amount_yuan”字段中。\n(3)项目金额:可能为合同预估价/最高投标限价等等。不要试图写代码去正则匹配金额,因为金额的表述很多样,优先获取到详情md文件(或者html)后,使用`takeMoney`工具进行获取提取金额。\n(4)项目名称和项目金额必须对应,如果获取不到金额,将金额直接设置为null值。禁止联想生成项目金额。\n\n【要求三】\n(1)必须记录下每个项目的详情链接,记录到\"target_link\"字段中。\n\n输出结果为json,json结构如下\n```\n{\n \"results\": [\n\n {\n \"type\": \"比如水利工程-招标计划/招标计划变更公告\",\n\t\t\"project_name\": \"\",\n\t\t\"amount_yuan\": 0,\n\t\t\"date\": \"yyyy-MM-dd\",\n\t\t\"target_link\": \"http...\"\n\t }\n ]\n}\n```\n## 采集方法\n1. 使用 agent-browser 工具访问页\n2. 筛选水利工程 + 招标计划/招标计划变更公告,筛选“发布时间”为“近三天”\n3. 点击项目进入详情页\n4. 获取详情页URL\n5. 保存详情页内容到文件\n6. 使用 takeMoney 工具提取金额", - "enabled": false, - "useBrowser": true, - "mode": "glm-5" - }, - { - "id": "task-1773369324882", - "city": "省公共平台-水利工程-招标公告", - "prompt": "爬取http://jsggzy.jszwfw.gov.cn/jyxx/tradeInfonew.html?type=jsgc\n1. 水利工程板块中的【招标公告】模块\n\n按照以下要求进行:\n【要求一】获取列表数据:\n如果当前列表没有当天的数据,默认获取最新的1条数据。如果当前列表有多条当天数据,请获取当天的全部数据。将获取到的列表数据先存下来:\n【要求二】列表数据处理:\n(1)项目名称:必须要使用列表中的项目名称!而且必须先记住列表中的项目名称!不可以用其他项目名称来替代!记录到“project_name”字段中。\n(2)如果列表已经有金额,依据表头里的金额单位,比如“万元”,需要转为元,不需要打开详情页面去爬取项目金额,记录到“amount_yuan”字段中。\n如果列表没有金额,打开详情页去查看项目金额。记录到“amount_yuan”字段中。\n(3)项目金额:可能为合同预估价/最高投标限价等等。不要试图写代码去正则匹配金额,因为金额的表述很多样,优先获取到详情md文件(或者html)后,使用`takeMoney`工具进行获取提取金额。\n(4)项目名称和项目金额必须对应,如果获取不到金额,将金额直接设置为null值。禁止联想生成项目金额。\n\n【要求三】\n(1)必须记录下每个项目的详情链接,记录到\"target_link\"字段中。\n\n输出结果为json,json结构如下\n```\n{\n \"results\": [\n\n {\n \"type\": \"比如水利工程-招标公告\",\n\t\t\"project_name\": \"\",\n\t\t\"amount_yuan\": 0,\n\t\t\"date\": \"yyyy-MM-dd\",\n\t\t\"target_link\": \"http...\"\n\t }\n ]\n}\n```\n## 采集方法\n1. 使用 agent-browser 工具访问页\n2. 筛选水利工程 + 招标公告,筛选“发布时间”为“近三天”\n3. 点击项目进入详情页\n4. 获取详情页URL\n5. 保存详情页内容到文件\n6. 使用 takeMoney 工具提取金额", - "enabled": false, - "useBrowser": true, - "mode": "glm-5" - }, - { - "id": "task-1773369457387", - "city": "省建设平台-房屋建筑施工-招标公告", - "prompt": "爬取http://www.jszb.com.cn/JSZB/YW_info/ZhaoBiaoGG/MoreInfo_ZBGG.aspx?Type=%B7%BF%CE%DD%BD%A8%D6%FE%CA%A9%B9%A4\n1. 房屋建筑施工板块中的【招标公告】模块\n\n按照以下要求进行:\n【要求一】获取列表数据:\n如果当前列表没有当天的数据,默认获取最新的1条数据。如果当前列表有多条当天数据,请获取当天的全部数据。将获取到的列表数据先存下来:\n【要求二】列表数据处理:\n(1)项目名称:必须要使用列表中的项目名称!而且必须先记住列表中的项目名称!不可以用其他项目名称来替代!记录到“project_name”字段中。\n(2)如果列表已经有金额,依据表头里的金额单位,比如“万元”,需要转为元,不需要打开详情页面去爬取项目金额,记录到“amount_yuan”字段中。\n如果列表没有金额,打开详情页去查看项目金额。记录到“amount_yuan”字段中。\n(3)项目金额:可能为合同预估价/最高投标限价等等。不要试图写代码去正则匹配金额,因为金额的表述很多样,优先获取到详情md文件(或者html)后,使用`takeMoney`工具进行获取提取金额。\n(4)项目名称和项目金额必须对应,如果获取不到金额,将金额直接设置为null值。禁止联想生成项目金额。\n\n【要求三】\n(1)必须记录下每个项目的详情链接,记录到\"target_link\"字段中。\n\n输出结果为json,json结构如下\n```\n{\n \"results\": [\n\n {\n \"type\": \"比如房屋建筑施工-招标公告\",\n\t\t\"project_name\": \"\",\n\t\t\"amount_yuan\": 0,\n\t\t\"date\": \"yyyy-MM-dd\",\n\t\t\"target_link\": \"http...\"\n\t }\n ]\n}\n```\n## 采集方法\n1. 使用 agent-browser 工具访问页\n2. 筛选房屋建筑施工-招标公告\n3. 点击项目进入详情页\n4. 获取详情页URL\n5. 保存详情页内容到文件\n6. 使用 takeMoney 工具提取金额", - "enabled": false, - "useBrowser": false, - "mode": "glm-5" - }, - { - "id": "task-1773369549735", - "city": "省建设平台-市政工程施工-招标公告", - "prompt": "爬取http://www.jszb.com.cn/JSZB/YW_info/ZhaoBiaoGG/MoreInfo_ZBGG.aspx?Type=%CA%D0%D5%FE%B9%A4%B3%CC%CA%A9%B9%A4\n1. 市政工程施工板块中的【招标公告】模块\n\n按照以下要求进行:\n【要求一】获取列表数据:\n如果当前列表没有当天的数据,默认获取最新的1条数据。如果当前列表有多条当天数据,请获取当天的全部数据。将获取到的列表数据先存下来:\n【要求二】列表数据处理:\n(1)项目名称:必须要使用列表中的项目名称!而且必须先记住列表中的项目名称!不可以用其他项目名称来替代!记录到“project_name”字段中。\n(2)如果列表已经有金额,依据表头里的金额单位,比如“万元”,需要转为元,不需要打开详情页面去爬取项目金额,记录到“amount_yuan”字段中。\n如果列表没有金额,打开详情页去查看项目金额。记录到“amount_yuan”字段中。\n(3)项目金额:可能为合同预估价/最高投标限价等等。不要试图写代码去正则匹配金额,因为金额的表述很多样,优先获取到详情md文件(或者html)后,使用`takeMoney`工具进行获取提取金额。\n(4)项目名称和项目金额必须对应,如果获取不到金额,将金额直接设置为null值。禁止联想生成项目金额。\n\n【要求三】\n(1)必须记录下每个项目的详情链接,记录到\"target_link\"字段中。\n\n输出结果为json,json结构如下\n```\n{\n \"results\": [\n\n {\n \"type\": \"比如市政工程施工-招标公告\",\n\t\t\"project_name\": \"\",\n\t\t\"amount_yuan\": 0,\n\t\t\"date\": \"yyyy-MM-dd\",\n\t\t\"target_link\": \"http...\"\n\t }\n ]\n}\n```\n## 采集方法\n1. 使用 agent-browser 工具访问页\n2. 筛选市政工程施工-招标公告\n3. 点击项目进入详情页\n4. 获取详情页URL\n5. 保存详情页内容到文件\n6. 使用 takeMoney 工具提取金额", - "enabled": false, - "useBrowser": false, - "mode": "qwen3.5-plus" - }, - { - "id": "task-1773369738593", - "city": "省建设平台-单独装饰装修施工-招标公告", - "prompt": "爬取http://www.jszb.com.cn/JSZB/YW_info/ZhaoBiaoGG/MoreInfo_ZBGG.aspx?Type=%B5%A5%B6%C0%D7%B0%CA%CE%D7%B0%D0%DE%CA%A9%B9%A4\n1. 单独装饰装修施工板块中的【招标公告】模块\n\n按照以下要求进行:\n【要求一】获取列表数据:\n如果当前列表没有当天的数据,默认获取最新的1条数据。如果当前列表有多条当天数据,请获取当天的全部数据。将获取到的列表数据先存下来:\n【要求二】列表数据处理:\n(1)项目名称:必须要使用列表中的项目名称!而且必须先记住列表中的项目名称!不可以用其他项目名称来替代!记录到“project_name”字段中。\n(2)如果列表已经有金额,依据表头里的金额单位,比如“万元”,需要转为元,不需要打开详情页面去爬取项目金额,记录到“amount_yuan”字段中。\n如果列表没有金额,打开详情页去查看项目金额。记录到“amount_yuan”字段中。\n(3)项目金额:可能为合同预估价/最高投标限价等等。不要试图写代码去正则匹配金额,因为金额的表述很多样,优先获取到详情md文件(或者html)后,使用`takeMoney`工具进行获取提取金额。\n(4)项目名称和项目金额必须对应,如果获取不到金额,将金额直接设置为null值。禁止联想生成项目金额。\n\n【要求三】\n(1)必须记录下每个项目的详情链接,记录到\"target_link\"字段中。\n\n输出结果为json,json结构如下\n```\n{\n \"results\": [\n\n {\n \"type\": \"比如单独装饰装修施工-招标公告\",\n\t\t\"project_name\": \"\",\n\t\t\"amount_yuan\": 0,\n\t\t\"date\": \"yyyy-MM-dd\",\n\t\t\"target_link\": \"http...\"\n\t }\n ]\n}\n```\n## 采集方法\n1. 使用 agent-browser 工具访问页\n2. 筛选单独装饰装修施工-招标公告\n3. 点击项目进入详情页\n4. 获取详情页URL\n5. 保存详情页内容到文件\n6. 使用 takeMoney 工具提取金额", - "enabled": false, - "useBrowser": false, - "mode": "glm-5" - }, - { - "id": "task-1773369993193", - "city": "省建设平台-设计-招标公告", - "prompt": "爬取http://www.jszb.com.cn/JSZB/YW_info/ZhaoBiaoGG/MoreInfo_ZBGG.aspx?Type=%C9%E8%BC%C6\n1. 设计板块中的【招标公告】模块\n\n按照以下要求进行:\n【要求一】获取列表数据:\n如果当前列表没有当天的数据,默认获取最新的1条数据。如果当前列表有多条当天数据,请获取当天的全部数据。将获取到的列表数据先存下来:\n【要求二】列表数据处理:\n(1)项目名称:必须要使用列表中的项目名称!而且必须先记住列表中的项目名称!不可以用其他项目名称来替代!记录到“project_name”字段中。\n(2)如果列表已经有金额,依据表头里的金额单位,比如“万元”,需要转为元,不需要打开详情页面去爬取项目金额,记录到“amount_yuan”字段中。\n如果列表没有金额,打开详情页去查看项目金额。记录到“amount_yuan”字段中。\n(3)项目金额:可能为合同预估价/最高投标限价等等。不要试图写代码去正则匹配金额,因为金额的表述很多样,优先获取到详情md文件(或者html)后,使用`takeMoney`工具进行获取提取金额。\n(4)项目名称和项目金额必须对应,如果获取不到金额,将金额直接设置为null值。禁止联想生成项目金额。\n\n【要求三】\n(1)必须记录下每个项目的详情链接,记录到\"target_link\"字段中。\n\n输出结果为json,json结构如下\n```\n{\n \"results\": [\n\n {\n \"type\": \"比如设计-招标公告\",\n\t\t\"project_name\": \"\",\n\t\t\"amount_yuan\": 0,\n\t\t\"date\": \"yyyy-MM-dd\",\n\t\t\"target_link\": \"http...\"\n\t }\n ]\n}\n```\n## 采集方法\n1. 使用 agent-browser 工具访问页\n2. 筛选设计-招标公告\n3. 点击项目进入详情页\n4. 获取详情页URL\n5. 保存详情页内容到文件\n6. 使用 takeMoney 工具提取金额", - "enabled": false, - "useBrowser": false, - "mode": "glm-5" - }, - { - "id": "task-1773370032974", - "city": "省建设平台-水利-招标公告", - "prompt": "爬取http://www.jszb.com.cn/JSZB/YW_info/ZhaoBiaoGG/MoreInfo_ZBGG.aspx?Type=%CB%AE%C0%FB\n1. 水利板块中的【招标公告】模块\n\n按照以下要求进行:\n【要求一】获取列表数据:\n如果当前列表没有当天的数据,默认获取最新的1条数据。如果当前列表有多条当天数据,请获取当天的全部数据。将获取到的列表数据先存下来:\n【要求二】列表数据处理:\n(1)项目名称:必须要使用列表中的项目名称!而且必须先记住列表中的项目名称!不可以用其他项目名称来替代!记录到“project_name”字段中。\n(2)如果列表已经有金额,依据表头里的金额单位,比如“万元”,需要转为元,不需要打开详情页面去爬取项目金额,记录到“amount_yuan”字段中。\n如果列表没有金额,打开详情页去查看项目金额。记录到“amount_yuan”字段中。\n(3)项目金额:可能为合同预估价/最高投标限价等等。不要试图写代码去正则匹配金额,因为金额的表述很多样,优先获取到详情md文件(或者html)后,使用`takeMoney`工具进行获取提取金额。\n(4)项目名称和项目金额必须对应,如果获取不到金额,将金额直接设置为null值。禁止联想生成项目金额。\n\n【要求三】\n(1)必须记录下每个项目的详情链接,记录到\"target_link\"字段中。\n\n输出结果为json,json结构如下\n```\n{\n \"results\": [\n\n {\n \"type\": \"比如水利-招标公告\",\n\t\t\"project_name\": \"\",\n\t\t\"amount_yuan\": 0,\n\t\t\"date\": \"yyyy-MM-dd\",\n\t\t\"target_link\": \"http...\"\n\t }\n ]\n}\n```\n## 采集方法\n1. 使用 agent-browser 工具访问页\n2. 筛选水利-招标公告\n3. 点击项目进入详情页\n4. 获取详情页URL\n5. 保存详情页内容到文件\n6. 使用 takeMoney 工具提取金额", - "enabled": false, - "useBrowser": false, - "mode": "glm-5" - } - ], "scheduler": { - "enabled": false, + "enabled": true, "cronTime": "0 9 * * *", - "description": "每天9点采集当日项目" + "threshold": 100000, + "description": "每天9点采集当日项目", + "timeRange": "thisMonth" }, "email": { "smtpHost": "smtp.qq.com", "smtpPort": 587, "smtpUser": "1076597680@qq.com", "smtpPass": "nfrjdiraqddsjeeh", - "recipients": "5482498@qq.com" + "recipients": "1650243281@qq.com" } -} \ No newline at end of file +} diff --git a/package-lock.json b/package-lock.json index a019c4d..cf0e049 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,14 +8,14 @@ "name": "njggzy-scraper", "version": "2.0.0", "dependencies": { - "@mendable/firecrawl-js": "^4.15.2", - "cheerio": "^1.0.0-rc.12", + "@mendable/firecrawl-js": "latest", + "better-sqlite3": "^12.8.0", "cors": "^2.8.5", "dotenv": "^17.2.3", "express": "^5.2.1", "node-cron": "^4.2.1", "nodemailer": "^7.0.11", - "zod": "^4.3.6" + "zod": "^3.24.2" } }, "node_modules/@mendable/firecrawl-js": { @@ -33,15 +33,6 @@ "node": ">=22.0.0" } }, - "node_modules/@mendable/firecrawl-js/node_modules/zod": { - "version": "3.25.76", - "resolved": "https://registry.npmmirror.com/zod/-/zod-3.25.76.tgz", - "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/colinhacks" - } - }, "node_modules/accepts": { "version": "2.0.0", "resolved": "https://registry.npmmirror.com/accepts/-/accepts-2.0.0.tgz", @@ -97,6 +88,60 @@ "proxy-from-env": "^1.1.0" } }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmmirror.com/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/better-sqlite3": { + "version": "12.8.0", + "resolved": "https://registry.npmmirror.com/better-sqlite3/-/better-sqlite3-12.8.0.tgz", + "integrity": "sha512-RxD2Vd96sQDjQr20kdP+F+dK/1OUNiVOl200vKBZY8u0vTwysfolF6Hq+3ZK2+h8My9YvZhHsF+RSGZW2VYrPQ==", + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "bindings": "^1.5.0", + "prebuild-install": "^7.1.1" + }, + "engines": { + "node": "20.x || 22.x || 23.x || 24.x || 25.x" + } + }, + "node_modules/bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmmirror.com/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "license": "MIT", + "dependencies": { + "file-uri-to-path": "1.0.0" + } + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "license": "MIT", + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, "node_modules/body-parser": { "version": "2.2.1", "resolved": "https://registry.npmmirror.com/body-parser/-/body-parser-2.2.1.tgz", @@ -137,11 +182,29 @@ "url": "https://opencollective.com/express" } }, - "node_modules/boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", - "license": "ISC" + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmmirror.com/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } }, "node_modules/bytes": { "version": "3.1.2", @@ -181,47 +244,11 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/cheerio": { - "version": "1.1.2", - "resolved": "https://registry.npmmirror.com/cheerio/-/cheerio-1.1.2.tgz", - "integrity": "sha512-IkxPpb5rS/d1IiLbHMgfPuS0FgiWTtFIm/Nj+2woXDLTZ7fOT2eqzgYbdMlLweqlHbsZjxEChoVK+7iph7jyQg==", - "license": "MIT", - "dependencies": { - "cheerio-select": "^2.1.0", - "dom-serializer": "^2.0.0", - "domhandler": "^5.0.3", - "domutils": "^3.2.2", - "encoding-sniffer": "^0.2.1", - "htmlparser2": "^10.0.0", - "parse5": "^7.3.0", - "parse5-htmlparser2-tree-adapter": "^7.1.0", - "parse5-parser-stream": "^7.1.2", - "undici": "^7.12.0", - "whatwg-mimetype": "^4.0.0" - }, - "engines": { - "node": ">=20.18.1" - }, - "funding": { - "url": "https://github.com/cheeriojs/cheerio?sponsor=1" - } - }, - "node_modules/cheerio-select": { - "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/cheerio-select/-/cheerio-select-2.1.0.tgz", - "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", - "license": "BSD-2-Clause", - "dependencies": { - "boolbase": "^1.0.0", - "css-select": "^5.1.0", - "css-what": "^6.1.0", - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3", - "domutils": "^3.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } + "node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "license": "ISC" }, "node_modules/combined-stream": { "version": "1.0.8", @@ -288,34 +315,6 @@ "node": ">= 0.10" } }, - "node_modules/css-select": { - "version": "5.2.2", - "resolved": "https://registry.npmmirror.com/css-select/-/css-select-5.2.2.tgz", - "integrity": "sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==", - "license": "BSD-2-Clause", - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^6.1.0", - "domhandler": "^5.0.2", - "domutils": "^3.0.1", - "nth-check": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/css-what": { - "version": "6.2.2", - "resolved": "https://registry.npmmirror.com/css-what/-/css-what-6.2.2.tgz", - "integrity": "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==", - "license": "BSD-2-Clause", - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, "node_modules/debug": { "version": "4.4.3", "resolved": "https://registry.npmmirror.com/debug/-/debug-4.4.3.tgz", @@ -333,6 +332,30 @@ } } }, + "node_modules/decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "license": "MIT", + "dependencies": { + "mimic-response": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmmirror.com/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "license": "MIT", + "engines": { + "node": ">=4.0.0" + } + }, "node_modules/delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -351,59 +374,13 @@ "node": ">= 0.8" } }, - "node_modules/dom-serializer": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/dom-serializer/-/dom-serializer-2.0.0.tgz", - "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", - "license": "MIT", - "dependencies": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.2", - "entities": "^4.2.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/domelementtype": { - "version": "2.3.0", - "resolved": "https://registry.npmmirror.com/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "license": "BSD-2-Clause" - }, - "node_modules/domhandler": { - "version": "5.0.3", - "resolved": "https://registry.npmmirror.com/domhandler/-/domhandler-5.0.3.tgz", - "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", - "license": "BSD-2-Clause", - "dependencies": { - "domelementtype": "^2.3.0" - }, + "node_modules/detect-libc": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", + "license": "Apache-2.0", "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/domutils": { - "version": "3.2.2", - "resolved": "https://registry.npmmirror.com/domutils/-/domutils-3.2.2.tgz", - "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", - "license": "BSD-2-Clause", - "dependencies": { - "dom-serializer": "^2.0.0", - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" + "node": ">=8" } }, "node_modules/dotenv": { @@ -447,29 +424,13 @@ "node": ">= 0.8" } }, - "node_modules/encoding-sniffer": { - "version": "0.2.1", - "resolved": "https://registry.npmmirror.com/encoding-sniffer/-/encoding-sniffer-0.2.1.tgz", - "integrity": "sha512-5gvq20T6vfpekVtqrYQsSCFZ1wEg5+wW0/QaZMWkFr6BqD3NfKs0rLCx4rrVlSWJeZb5NBJgVLswK/w2MWU+Gw==", + "node_modules/end-of-stream": { + "version": "1.4.5", + "resolved": "https://registry.npmmirror.com/end-of-stream/-/end-of-stream-1.4.5.tgz", + "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==", "license": "MIT", "dependencies": { - "iconv-lite": "^0.6.3", - "whatwg-encoding": "^3.1.1" - }, - "funding": { - "url": "https://github.com/fb55/encoding-sniffer?sponsor=1" - } - }, - "node_modules/entities": { - "version": "4.5.0", - "resolved": "https://registry.npmmirror.com/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" + "once": "^1.4.0" } }, "node_modules/es-define-property": { @@ -532,6 +493,15 @@ "node": ">= 0.6" } }, + "node_modules/expand-template": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/expand-template/-/expand-template-2.0.3.tgz", + "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==", + "license": "(MIT OR WTFPL)", + "engines": { + "node": ">=6" + } + }, "node_modules/express": { "version": "5.2.1", "resolved": "https://registry.npmmirror.com/express/-/express-5.2.1.tgz", @@ -600,6 +570,12 @@ "url": "https://opencollective.com/express" } }, + "node_modules/file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "license": "MIT" + }, "node_modules/finalhandler": { "version": "2.1.1", "resolved": "https://registry.npmmirror.com/finalhandler/-/finalhandler-2.1.1.tgz", @@ -675,6 +651,12 @@ "node": ">= 0.8" } }, + "node_modules/fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "license": "MIT" + }, "node_modules/function-bind": { "version": "1.1.2", "resolved": "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.2.tgz", @@ -721,6 +703,12 @@ "node": ">= 0.4" } }, + "node_modules/github-from-package": { + "version": "0.0.0", + "resolved": "https://registry.npmmirror.com/github-from-package/-/github-from-package-0.0.0.tgz", + "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==", + "license": "MIT" + }, "node_modules/gopd": { "version": "1.2.0", "resolved": "https://registry.npmmirror.com/gopd/-/gopd-1.2.0.tgz", @@ -772,37 +760,6 @@ "node": ">= 0.4" } }, - "node_modules/htmlparser2": { - "version": "10.0.0", - "resolved": "https://registry.npmmirror.com/htmlparser2/-/htmlparser2-10.0.0.tgz", - "integrity": "sha512-TwAZM+zE5Tq3lrEHvOlvwgj1XLWQCtaaibSN11Q+gGBAS7Y1uZSWwXXRe4iF6OXnaq1riyQAPFOBtYc77Mxq0g==", - "funding": [ - "https://github.com/fb55/htmlparser2?sponsor=1", - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "license": "MIT", - "dependencies": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3", - "domutils": "^3.2.1", - "entities": "^6.0.0" - } - }, - "node_modules/htmlparser2/node_modules/entities": { - "version": "6.0.1", - "resolved": "https://registry.npmmirror.com/entities/-/entities-6.0.1.tgz", - "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, "node_modules/http-errors": { "version": "2.0.1", "resolved": "https://registry.npmmirror.com/http-errors/-/http-errors-2.0.1.tgz", @@ -823,17 +780,25 @@ "url": "https://opencollective.com/express" } }, - "node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" }, "node_modules/inherits": { "version": "2.0.4", @@ -841,6 +806,12 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "license": "ISC" }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmmirror.com/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "license": "ISC" + }, "node_modules/ipaddr.js": { "version": "1.9.1", "resolved": "https://registry.npmmirror.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz", @@ -907,12 +878,45 @@ "node": ">= 0.6" } }, + "node_modules/mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmmirror.com/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mkdirp-classic": { + "version": "0.5.3", + "resolved": "https://registry.npmmirror.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", + "license": "MIT" + }, "node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "license": "MIT" }, + "node_modules/napi-build-utils": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/napi-build-utils/-/napi-build-utils-1.0.2.tgz", + "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==", + "license": "MIT" + }, "node_modules/negotiator": { "version": "1.0.0", "resolved": "https://registry.npmmirror.com/negotiator/-/negotiator-1.0.0.tgz", @@ -922,6 +926,18 @@ "node": ">= 0.6" } }, + "node_modules/node-abi": { + "version": "3.89.0", + "resolved": "https://registry.npmmirror.com/node-abi/-/node-abi-3.89.0.tgz", + "integrity": "sha512-6u9UwL0HlAl21+agMN3YAMXcKByMqwGx+pq+P76vii5f7hTPtKDp08/H9py6DY+cfDw7kQNTGEj/rly3IgbNQA==", + "license": "MIT", + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/node-cron": { "version": "4.2.1", "resolved": "https://registry.npmmirror.com/node-cron/-/node-cron-4.2.1.tgz", @@ -940,18 +956,6 @@ "node": ">=6.0.0" } }, - "node_modules/nth-check": { - "version": "2.1.1", - "resolved": "https://registry.npmmirror.com/nth-check/-/nth-check-2.1.1.tgz", - "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", - "license": "BSD-2-Clause", - "dependencies": { - "boolbase": "^1.0.0" - }, - "funding": { - "url": "https://github.com/fb55/nth-check?sponsor=1" - } - }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmmirror.com/object-assign/-/object-assign-4.1.1.tgz", @@ -994,55 +998,6 @@ "wrappy": "1" } }, - "node_modules/parse5": { - "version": "7.3.0", - "resolved": "https://registry.npmmirror.com/parse5/-/parse5-7.3.0.tgz", - "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==", - "license": "MIT", - "dependencies": { - "entities": "^6.0.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" - } - }, - "node_modules/parse5-htmlparser2-tree-adapter": { - "version": "7.1.0", - "resolved": "https://registry.npmmirror.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.1.0.tgz", - "integrity": "sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==", - "license": "MIT", - "dependencies": { - "domhandler": "^5.0.3", - "parse5": "^7.0.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" - } - }, - "node_modules/parse5-parser-stream": { - "version": "7.1.2", - "resolved": "https://registry.npmmirror.com/parse5-parser-stream/-/parse5-parser-stream-7.1.2.tgz", - "integrity": "sha512-JyeQc9iwFLn5TbvvqACIF/VXG6abODeB3Fwmv/TGdLk2LfbWkaySGY72at4+Ty7EkPZj854u4CrICqNk2qIbow==", - "license": "MIT", - "dependencies": { - "parse5": "^7.0.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" - } - }, - "node_modules/parse5/node_modules/entities": { - "version": "6.0.1", - "resolved": "https://registry.npmmirror.com/entities/-/entities-6.0.1.tgz", - "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, "node_modules/parseurl": { "version": "1.3.3", "resolved": "https://registry.npmmirror.com/parseurl/-/parseurl-1.3.3.tgz", @@ -1062,6 +1017,32 @@ "url": "https://opencollective.com/express" } }, + "node_modules/prebuild-install": { + "version": "7.1.2", + "resolved": "https://registry.npmmirror.com/prebuild-install/-/prebuild-install-7.1.2.tgz", + "integrity": "sha512-UnNke3IQb6sgarcZIDU3gbMeTp/9SSU1DAIkil7PrqG1vZlBtY5msYccSKSHDqa3hNg436IXK+SNImReuA1wEQ==", + "license": "MIT", + "dependencies": { + "detect-libc": "^2.0.0", + "expand-template": "^2.0.3", + "github-from-package": "0.0.0", + "minimist": "^1.2.3", + "mkdirp-classic": "^0.5.3", + "napi-build-utils": "^1.0.1", + "node-abi": "^3.3.0", + "pump": "^3.0.0", + "rc": "^1.2.7", + "simple-get": "^4.0.0", + "tar-fs": "^2.0.0", + "tunnel-agent": "^0.6.0" + }, + "bin": { + "prebuild-install": "bin.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/proxy-addr": { "version": "2.0.7", "resolved": "https://registry.npmmirror.com/proxy-addr/-/proxy-addr-2.0.7.tgz", @@ -1081,6 +1062,16 @@ "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", "license": "MIT" }, + "node_modules/pump": { + "version": "3.0.4", + "resolved": "https://registry.npmmirror.com/pump/-/pump-3.0.4.tgz", + "integrity": "sha512-VS7sjc6KR7e1ukRFhQSY5LM2uBWAUPiOPa/A3mkKmiMwSmRFUITt0xuj+/lesgnCv+dPIEYlkzrcyXgquIHMcA==", + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, "node_modules/qs": { "version": "6.14.0", "resolved": "https://registry.npmmirror.com/qs/-/qs-6.14.0.tgz", @@ -1136,6 +1127,35 @@ "url": "https://opencollective.com/express" } }, + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmmirror.com/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/router": { "version": "2.2.0", "resolved": "https://registry.npmmirror.com/router/-/router-2.2.0.tgz", @@ -1152,12 +1172,44 @@ "node": ">= 18" } }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "license": "MIT" }, + "node_modules/semver": { + "version": "7.7.4", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/send": { "version": "1.2.0", "resolved": "https://registry.npmmirror.com/send/-/send-1.2.0.tgz", @@ -1298,6 +1350,51 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/simple-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/simple-concat/-/simple-concat-1.0.1.tgz", + "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/simple-get": { + "version": "4.0.1", + "resolved": "https://registry.npmmirror.com/simple-get/-/simple-get-4.0.1.tgz", + "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "decompress-response": "^6.0.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" + } + }, "node_modules/statuses": { "version": "2.0.2", "resolved": "https://registry.npmmirror.com/statuses/-/statuses-2.0.2.tgz", @@ -1307,6 +1404,52 @@ "node": ">= 0.8" } }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/tar-fs": { + "version": "2.1.4", + "resolved": "https://registry.npmmirror.com/tar-fs/-/tar-fs-2.1.4.tgz", + "integrity": "sha512-mDAjwmZdh7LTT6pNleZ05Yt65HC3E+NiQzl672vQG38jIrehtJk/J3mNwIg+vShQPcLF/LV7CMnDW6vjj6sfYQ==", + "license": "MIT", + "dependencies": { + "chownr": "^1.1.1", + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^2.1.4" + } + }, + "node_modules/tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "license": "MIT", + "dependencies": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/toidentifier": { "version": "1.0.1", "resolved": "https://registry.npmmirror.com/toidentifier/-/toidentifier-1.0.1.tgz", @@ -1316,6 +1459,18 @@ "node": ">=0.6" } }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmmirror.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "license": "Apache-2.0", + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, "node_modules/type-is": { "version": "2.0.1", "resolved": "https://registry.npmmirror.com/type-is/-/type-is-2.0.1.tgz", @@ -1361,15 +1516,6 @@ "integrity": "sha512-TvkrTUpv7gCPlcnSoEwUVUBwsdheKm+HF5u2tPAKubkIGMfovdSizCTaZRY/NhR8+Ijy8iZZUapbVQAsNrkFrw==", "license": "MIT" }, - "node_modules/undici": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/undici/-/undici-7.16.0.tgz", - "integrity": "sha512-QEg3HPMll0o3t2ourKwOeUAZ159Kn9mx5pnzHRQO8+Wixmh88YdZRiIwat0iNzNNXn0yoEtXJqFpyW7eM8BV7g==", - "license": "MIT", - "engines": { - "node": ">=20.18.1" - } - }, "node_modules/unpipe": { "version": "1.0.0", "resolved": "https://registry.npmmirror.com/unpipe/-/unpipe-1.0.0.tgz", @@ -1379,6 +1525,12 @@ "node": ">= 0.8" } }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT" + }, "node_modules/vary": { "version": "1.1.2", "resolved": "https://registry.npmmirror.com/vary/-/vary-1.1.2.tgz", @@ -1388,27 +1540,6 @@ "node": ">= 0.8" } }, - "node_modules/whatwg-encoding": { - "version": "3.1.1", - "resolved": "https://registry.npmmirror.com/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz", - "integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==", - "license": "MIT", - "dependencies": { - "iconv-lite": "0.6.3" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/whatwg-mimetype": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz", - "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==", - "license": "MIT", - "engines": { - "node": ">=18" - } - }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz", @@ -1416,9 +1547,9 @@ "license": "ISC" }, "node_modules/zod": { - "version": "4.3.6", - "resolved": "https://registry.npmmirror.com/zod/-/zod-4.3.6.tgz", - "integrity": "sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg==", + "version": "3.25.76", + "resolved": "https://registry.npmmirror.com/zod/-/zod-3.25.76.tgz", + "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", "license": "MIT", "funding": { "url": "https://github.com/sponsors/colinhacks" diff --git a/package.json b/package.json index c218076..6b1c7be 100644 --- a/package.json +++ b/package.json @@ -9,6 +9,7 @@ }, "dependencies": { "@mendable/firecrawl-js": "latest", + "better-sqlite3": "^12.8.0", "cors": "^2.8.5", "dotenv": "^17.2.3", "express": "^5.2.1", @@ -16,4 +17,4 @@ "nodemailer": "^7.0.11", "zod": "^3.24.2" } -} \ No newline at end of file +} diff --git a/public/index.html b/public/index.html index 77c57a4..0f1ab2a 100644 --- a/public/index.html +++ b/public/index.html @@ -534,6 +534,13 @@
+ +| 提示词 | 模型 | 状态 | -浏览器 | 操作 | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 加载中... | +加载中... | |||||||||||