|
应用包含完整的未加密流程代码
应用包含流程完整的元素素材包
下载后可以自由任意使用无限制
|
![]() |
TEL: 18605797119 客服QQ: 1197892138 |
1、按“采购方式+项目所在地+项目类别”3 个维度,在「军队采购网」公示公告栏目做组合筛选;
2、把每一页搜到的公告标题、类型、类别、地区、发布时间、详情链接 6 个字段追加写入本地 Excel(军队采购网.xlsx);
3、同时把每一条公告的详情页整页 HTML 保存到本地磁盘(以公告 UUID 命名,*.html),方便后续离线查看或做正文抽取。
一句话:自动完成“条件检索 → 列表采集 → 详情落地 → 本地 Excel 汇总”的闭环。
【流程执行】
打开 Edge,载入起始地址
行 8 xbot_visual.web.create()
URL = https://www.plap.mil.cn/freecms-glht/site/juncai/cggg/index.html
弹出“自定义对话框”让用户选过滤条件
行 11-23 show_custom_dialog
返回三个字符串:Select_caigoufangshi、Select_suozaidi、Select_xiangmuleibie
如果用户没选“全部”,则依次点下拉框完成筛选
行 25-39 三组 IF
采购方式 ≠“全部” → 点击“公开招标”
所在地 ≠“全部” → 点击“宁夏自治区”(代码里硬编码,见下文“要改哪里”)
项目类别 ≠“全部” → 点击“物资”
点击“查询”按钮,让列表刷新
行 41 xbot_visual.web.element.click(“查询”)
打开/新建 Excel(如已存在则直接打开)
行 43 excel_instance ← launch(“D:J盘-杂料业务资料RPA项目资料网络广告宣传_RPA军队采购网.xlsx”)
死循环翻页采集
行 45-94 while True:
6-1 重新激活浏览器页签(retry 4 次,防失活)
6-2 循环相似元素:package.selector(“段落_ellipsis_相似元素组”) —— 即每行公告
对每条公告
a) 正则提取 6 个字段(href、标题、地区、类型、类别、时间)
b) 从 href 中再提取 32 位 UUID
c) 拼本地路径 C:UsersAdministratorDesktop�{UUID}.html
d) 把 7 个值(含本地路径)写 Excel 新行
e) 新建标签页打开详情页 /freecms/…/{UUID}.html
f) 把详情页 HTML 全量读出,并把相对路径“/freecms”替换成绝对域名,保存到上述本地 html
g) 关闭详情页标签
6-3 如果“最后一页”按钮不可见,就点“下一页”,sleep 2 s;否则 break 结束翻页
保存并关闭 Excel
行 96 xbot_visual.excel.close()
【流程说明】
| 要改什么 | 在哪一行 | 当前硬编码值 | 建议修改方案 |
|---|---|---|---|
| 1. 本地 Excel 路径 | 43 | D:J盘-杂料业务资料RPA项目资料网络广告宣传_RPA军队采购网.xlsx | 换成你自己电脑存在的路径,或改为“新建文件” |
| 2. 详情页本地保存目录 | 30、37 | C:UsersAdministratorDesktop� | 建议用 xbot_visual.dialog.show_select_folder() 让用户选目录,避免管理员权限问题 |
| 3. 所在地筛选硬编码 | 10-11 | 固定点击“宁夏自治区” | 把“宁夏自治区”selector 换成变量:根据用户选择的 Select_suozaidi 去匹配对应下拉项;或把下拉选项的映射写进字典 |
| 4. 项目类别同理 | 14-15 | 固定点击“物资” | 同上,根据 Select_xiangmuleibie 动态选 |
| 5. 翻页终止条件 | 40 | package.selector(“最后一页”) | 如果网站改版,class 名可能失效,需用编辑器重新拾取 |
| 6. 正则提取规则 | 23-29 | 6 条正则 | 一旦网页结构微调(class、style 宽度变化),正则就会失效,建议用“CSS 选择器”或“XPath”方式提取,降低维护成本 |
| 7. 浏览器类型 | 8、20、34 | 全写死 “edge” |