等页面加载完成再采集
网页上的内容常常是慢慢刷出来的。如果页面还没就绪就开始采集,结果可能少一截,甚至是空的。 这篇讲怎么让 AI 等目标内容真的出现再往下走。
一、两种「等」,先分清
| 写法 | 它的行为 | 适合 |
|---|---|---|
等待 3 秒 | 不管页面好没好,固定停 3 秒 | 限速、给动画留一点时间 |
等商品列表加载出来 / 等加载提示消失 | 目标一出现就立即继续;超过上限还没出现,就记为「页面未就绪」 | 内容是异步刷出来的页面 |
固定秒数写短了不够,写长了白等;按「某块内容出现/消失」来等,通常更准。
二、在需求里怎么说
| 页面现象 | 可以这样说 |
|---|---|
| 列表一片空白,过一会儿才刷出商品 | 等商品列表加载出来再开始采集 |
| 页面中间有转圈 / 加载遮罩 | 等加载提示消失后再点击下一页 |
| 弹窗挡住按钮 | 等弹窗关闭后再继续 |
| 详情页正文慢慢出现 | 等正文出现后再提取 |
| 网络慢,想多等一会儿 | 最多等 15 秒 |
不用描述它藏在页面的哪个位置,用你眼睛看到的内容说就行,比如「商品列表」「加载提示」「登录弹窗」。
三、它的行为和边界
已经在页面上:不会傻等,立即继续。
等不到:超过时间上限(没说时默认 10 秒),日志会写:
等待元素出现超时(10000ms)
如果要等的是「某样东西消失」,则写:
等待元素消失超时(10000ms)
诊断标签是「页面未就绪」。这一次等待会被记为失败并跳过; 后面的步骤如果还要用这块内容,可能采不到或采空。
想多等一会儿:在需求里写「最多等 15 秒」「最多等 30 秒」,AI 会把上限调大。
等待只解决「加载慢」,不解决登录、验证码、页面改版。
四、什么时候别用
- 目标说不清:页面没有一个稳定、看得见的东西可以等(例如整页都是文字), 就用固定等待或滚动加载,见滚动加载采集。
- 只是想让请求之间慢一点:用
每次操作后等待 3 秒,不需要等元素。 - 等再久也等不到:先确认页面是不是需要登录、是不是被弹窗挡住、网址是不是对的。 这些情况加等待没用,见采不到数据怎么办。
相关文档
- 采不到数据 / 结果为空 —— 采空时按顺序排查
- 列表与翻页采集 —— 翻页时等新一页加载好
- 表单录入与提交 —— 提交表单后等结果出来再采
- 长时间采集防休眠 —— 页面被浏览器冻住也会采空