很多新版政府采购网、公共资源交易平台是 JS/Ajax 动态渲染,普通 http 采集模式拿到的是空白壳子,公告列表出不来,不是工具完全不能用,是模式没选对。
一、为什么抓不到动态页面
静态页面:网页源码直接写好公告列表,普通采集直接读取源码就拿到数据。 动态页面(Vue/React/Ajax):页面先返回空框架,浏览器再后台调用接口,把公告数据渲染出来。普通采集不执行 JS,不等接口返回,拿到的就是空列表。 政府采购站点常见:列表分页需要 JS 渲染、点击加载更多、滚动加载、iframe 嵌套、需要 cookie 会话,都会出现采集空白、只抓第一条、分页无效。
注意:开启浏览器渲染模式之后,采集速度会变慢,占用电脑资源,部分网站会识别自动化访问,频率太高容易被限制访问,这是客观现实,不是工具 bug。
方案一:火车采集器处理动态页面
火车采集器有两套处理动态网页的路径,优先试第一种,不行切换第二种。
方式 1:开启浏览器内核渲染
新建任务,不要用默认 http 下载模式,高级设置开启浏览器内核渲染(JS 渲染),这是最关键开关。
延长页面等待时间,政府采购网接口响应慢,等待时间调到 5‑15 秒,给页面足够时间加载公告列表。
如果是 “加载更多”、滚动翻页:开启模拟滚动、设置滚动间隔,不要滚动太快。
规则预览页面,看预览里能不能看到完整公告列表;预览为空,再调整等待时间。
缺点:浏览器模式相比 http 模式,速度慢,占用内存;部分站点有设备指纹校验,依然会拿不到数据。
方式 2:抓接口 JSON
F12 开发者工具‑Network,筛选 XHR/Fetch,刷新页面,找到返回公告列表的接口地址,直接采集这个接口返回的 JSON 数据,解析字段。 优点:速度快,数据结构干净稳定; 局限:部分政府网站接口带签名、token、时间戳,参数会变,普通零代码配置很难维持,网站一改版本规则直接失效,需要定期维护。
现实情况:一部分区县采购网接口加密,零代码层面搞不定接口模式,只能走浏览器渲染。
方案二:火车采集器渲染依然失败,改用火语言 RPA 做网页模拟采集
当火车采集器浏览器模式也拿不到,就把采集环节交给火语言 RPA。 火语言 RPA 是驱动真实浏览器,完全模拟人打开网页,等待页面全部渲染完毕之后再提取元素,适合对抗复杂 JS 渲染、iframe 嵌套页面。
实操流程(拖拽组件,零代码):
打开浏览器组件,输入政府采购网地址;
增加等待元素加载组件,等待公告列表元素出现,不要页面打开就立刻提取数据;
需要翻页就循环点击下一页按钮,需要滚动就执行页面滚动;
使用 “获取多元素信息” 提取标题、链接、发布时间等全部字段;
输出写入 Excel;
后续继续沿用原有逻辑:筛选、下载附件、钉钉 / 企业微信推送提醒。
客观短板
RPA 是真实浏览器运行,速度比接口采集慢,监控大量站点时,不能设置过高的轮询频率;
网站前端改版,元素位置变了,流程会失效,需要重新调整元素定位;
如果出现验证码,需要开启 OCR 识别,高频访问依然可能触发风控限制。
二、组合落地策略
优先火车采集器 http 模式:老版本静态政府采购网,速度最快,资源占用最小。
页面是动态渲染:火车采集器切换浏览器渲染模式,调大等待时间,优先用这个。
火车采集器渲染后还是空白、列表不全:该站点单独交给火语言 RPA 浏览器模拟采集;其余简单网站继续用火车采集器,两者混合跑,不用全部迁移 RPA。
轮询频率不要激进:政府采购公告不会秒级更新,设置 15‑30 分钟轮询一次即可,减少被网站限制的概率。
三、现实的局限性
不是所有网站零代码工具都能搞定。部分政务站点有加密签名、行为校验、强反爬,哪怕浏览器渲染也拿不到,这种场景要么人工盯,要么需要定制开发。
网页改版风险:政府采购平台一旦升级改版,不管火车采集器还是火语言 RPA,规则都要重新调整,不存在一次配置永久不用维护。
合规提醒:只采集对外公开的公告信息,控制访问频率,不要给网站服务器造成压力。
四、简短总结
补充:遇到 JS 动态渲染的政府采购网站,普通采集模式抓不到内容,属于比较常见的情况。火车采集器可以开启浏览器 JS 渲染模式,模拟真实浏览器加载页面;如果渲染后依然数据缺失,可以把该站点交给火语言 RPA,通过驱动真实浏览器模拟人工浏览,等待页面完全渲染后提取公告数据。 需要注意,浏览器渲染模式会降低运行速度,同时网站改版会导致规则失效,需要定期维护;遇到强反爬加密站点,零代码工具会存在能力边界。