|
|
发表于 2026-1-26 16:28:44
|
显示全部楼层
广东省广州市
.版本 2
.支持库 spec
.支持库 eNetIntercept
.程序集 窗口程序集1
.程序集变量 网页句柄, 整数型 ' 浏览器/网页控件句柄(队长模块的浏览器句柄/精易网页超文本框句柄)
' ========== 核心函数:提取第0个完成任务的MP4 URL和提示词 ==========
.子程序 提取第0个完成任务数据, 逻辑型, 公开, 成功返回真,失败返回假
.参数 输出_MP4_URL, 文本型, 参考 ' 输出提取到的MP4下载链接
.参数 输出_提示词文案, 文本型, 参考 ' 输出提取到的提示词
.参数 输出_视频序号, 文本型, 参考 ' 输出匹配到的视频序号
.局部变量 任务列表元素集合, 整数型 ' 任务列表所有元素集合
.局部变量 第0个任务元素, 整数型 ' 第0个任务项元素
.局部变量 下载按钮元素, 整数型 ' 下载按钮元素
.局部变量 提示词元素, 整数型 ' 提示词文案元素
.局部变量 序号元素, 整数型 ' 视频序号元素
' 步骤1:定位任务列表(替换为你网页的实际XPath/选择器)
' 示例XPath://div[@class='task-item-container'] (所有任务项的容器)
任务列表元素集合 = 精易_网页_取元素集合 (网页句柄, “//div[@class='task-item-container']”, “XPath”)
.如果真 (任务列表元素集合 = 0)
调试输出 (“❌ 未找到任务列表元素”)
返回 (假)
.如果真结束
' 步骤2:取第0个任务项(精易/队长模块元素集合索引从1开始,第0项对应[1])
第0个任务元素 = 精易_网页_取数组成员 (任务列表元素集合, 1)
.如果真 (第0个任务元素 = 0)
调试输出 (“❌ 第0个任务项不存在”)
返回 (假)
.如果真结束
' 步骤3:判断是否有下载按钮(任务完成标识)
' 示例XPath:.//button[contains(@class,'download-btn')] (下载按钮,相对路径)
下载按钮元素 = 精易_网页_取子元素 (第0个任务元素, “.//button[contains(@class,'download-btn')]”, “XPath”)
.如果真 (下载按钮元素 = 0)
调试输出 (“❌ 第0个任务未完成(无下载按钮)”)
返回 (假)
.如果真结束
' 步骤4:提取MP4 URL(优先取下载按钮的data-url属性,其次href)
输出_MP4_URL = 精易_网页_取元素属性 (下载按钮元素, “data-url”)
.如果真 (输出_MP4_URL = “”)
输出_MP4_URL = 精易_网页_取元素属性 (下载按钮元素, “href”)
.如果真结束
.如果真 (输出_MP4_URL = “”)
调试输出 (“❌ 未提取到MP4 URL”)
返回 (假)
.如果真结束
' 步骤5:提取提示词文案(替换为提示词元素的XPath)
' 示例XPath:.//div[@class='prompt-text'] (提示词容器)
提示词元素 = 精易_网页_取子元素 (第0个任务元素, “.//div[@class='prompt-text']”, “XPath”)
.如果真 (提示词元素 = 0)
调试输出 (“❌ 未找到提示词元素”)
返回 (假)
.如果真结束
输出_提示词文案 = 精易_网页_取元素文本 (提示词元素)
' 步骤6:匹配视频序号(两种方式,选其一)
' 方式1:从提示词文案中提取数字序号(比如提示词含“第3个视频”“序号:5”)
输出_视频序号 = 取数字 (输出_提示词文案) ' 精易模块自带,提取文本中所有数字
' 方式2:从任务项的序号元素提取(替换为序号元素XPath)
' 序号元素 = 精易_网页_取子元素 (第0个任务元素, “.//span[@class='task-index']”, “XPath”)
' 输出_视频序号 = 精易_网页_取元素文本 (序号元素)
调试输出 (“✅ 提取成功:序号=” + 输出_视频序号 + “,URL=” + 输出_MP4_URL + “,提示词=” + 输出_提示词文案)
返回 (真)
' ========== 队长模块兼容版(若用队长浏览器控件) ==========
.子程序 提取第0个完成任务数据_队长模块, 逻辑型
.参数 输出_MP4_URL, 文本型, 参考
.参数 输出_提示词文案, 文本型, 参考
.参数 输出_视频序号, 文本型, 参考
.局部变量 任务列表数量, 整数型
.局部变量 下载按钮是否存在, 逻辑型
' 步骤1:获取任务列表总数
任务列表数量 = 队长_网页_取元素数量 (网页句柄, “div.task-item-container”)
.如果真 (任务列表数量 = 0)
调试输出 (“❌ 无任务列表”)
返回 (假)
.如果真结束
' 步骤2:定位第0个任务项(队长模块索引从0开始)
队长_网页_定位元素 (网页句柄, “div.task-item-container:eq(0)”)
' 步骤3:判断是否有下载按钮
下载按钮是否存在 = 队长_网页_元素是否存在 (网页句柄, “button.download-btn”)
.如果真 (下载按钮是否存在 = 假)
调试输出 (“❌ 第0个任务未完成”)
返回 (假)
.如果真结束
' 步骤4:提取MP4 URL
输出_MP4_URL = 队长_网页_取元素属性 (网页句柄, “button.download-btn”, “data-url”)
.如果真 (输出_MP4_URL = “”)
输出_MP4_URL = 队长_网页_取元素属性 (网页句柄, “button.download-btn”, “href”)
.如果真结束
' 步骤5:提取提示词和序号
输出_提示词文案 = 队长_网页_取元素文本 (网页句柄, “div.prompt-text”)
输出_视频序号 = 取数字 (输出_提示词文案)
返回 (真)
' ========== 调用示例 ==========
.子程序 _按钮_提取数据_被单击
.局部变量 mp4_url, 文本型
.局部变量 提示词, 文本型
.局部变量 视频序号, 文本型
' 方式1:精易模块调用
.如果真 (提取第0个完成任务数据 (mp4_url, 提示词, 视频序号))
编辑框_MP4URL.内容 = mp4_url
编辑框_提示词.内容 = 提示词
编辑框_序号.内容 = 视频序号
.如果真结束
' 方式2:队长模块调用(二选一)
'.如果真 (提取第0个完成任务数据_队长模块 (mp4_url, 提示词, 视频序号))
' 编辑框_MP4URL.内容 = mp4_url
' 编辑框_提示词.内容 = 提示词
' 编辑框_序号.内容 = 视频序号
'.如果真结束 |
|