爬虫智能体任务流怎样停止重复翻页?记录页面身份与数量上限,再合并已见记录

爬虫智能体任务流搭建时,下一页地址可能一直指回同一页。让AI生成翻页循环前,要明确已见页面、最大页数和空页终止规则,防止采集永远不结束。

爬虫智能体任务流搭建时,下一页地址可能一直指回同一页。让AI生成翻页循环前,要明确已见页面、最大页数和空页终止规则,防止采集永远不结束。

搭建分页采集任务流的开发者。本文使用 Python 3.11 或以上版本的标准库,先验证一组人工构造的小样本。AI 负责提出实现或解释差异,结果由本地检查决定;这里没有把模型回答当成真实运行结果。

爬虫智能体任务流怎样停止重复翻页?记录页面身份与数量上限,再合并已见记录

验证分页终止条件前,先定规则

示例页面数据在本地字典中,程序没有发送任何网络请求,不能当作网站抓取结果。

页面身份p1/p2代表接口确认的游标;真实URL需先按授权范围校验,不能让模型随意构造下一页。

记录按明确id保留首个样本,重复id内容冲突应另报问题。这里a/b/c内容仅ID,不涉及冲突裁决。

给 AI 的输入要包含什么

把下面这份输入说明和你的实际样本一起交给可用的 AI 编程助手。示例只含虚构数据;对真实材料先去除账号凭据和个人信息。

用本地页面p1->p2、p2->p2模拟错误next。见到已访问页停止且原因repeated_page,最大页数3;记录ID重复b只保留一条。禁止外部请求或无限while,不猜下一页。

要求模型保留检查条件,并把它认为缺少的业务定义列出来。若回答改变了输入字段、忽略异常分支或直接删除原材料,先要求修正,再运行。提示词的作用是缩小任务范围,验收仍以代码和数据为准。

保存并运行最小验证程序

下方程序把关键规则和验证用例放在同一个可复跑示例中,便于先理解输入如何变成输出,再用它检查 AI 给出的实现。

新建一个空目录,把下面代码保存为 check.py,在该目录打开终端,运行 python -X utf8 check.py。代码自带示例输入,不需要安装第三方库。

pages={'p1':{'ids':['a','b'],'next':'p2'},'p2':{'ids':['b','c'],'next':'p2'}}
def collect(start,max_pages):
    visited=[];seen_pages=set();seen_ids=set();records=[];cursor=start
    while cursor is not None:
        if cursor in seen_pages: return visited,records,'repeated_page'
        if len(visited)>=max_pages: return visited,records,'page_cap'
        if cursor not in pages: raise ValueError('未知页面')
        page=pages[cursor];seen_pages.add(cursor);visited.append(cursor)
        for rid in page['ids']:
            if rid not in seen_ids: seen_ids.add(rid);records.append(rid)
        if not page['ids']: return visited,records,'empty_page'
        cursor=page['next']
    return visited,records,'completed'
visited,records,reason=collect('p1',3)
assert visited==['p1','p2'] and records==['a','b','c'] and reason=='repeated_page'
assert collect('p1',1)[2]=='page_cap'
print('visited',visited,'records',records,'stop_reason',reason)
print('page_cap_checked',True)

怎样判断结果符合要求

只访问p1/p2,记录a/b/c,循环next报告repeated_page。最大页数1另报告page_cap,不能写成完整采集完成。

下方是这份最小示例在本地执行得到的输出。它验证示例程序与断言的关系,不代表任何 AI 模型一次就能生成同样代码,也不构成性能或生产可靠性结论。

visited ['p1', 'p2'] records ['a', 'b', 'c'] stop_reason repeated_page
page_cap_checked True

同一页面URL参数不同可能代表同一内容,身份需要按真实协议定义。

空页不总是结束,某些接口允许空页继续;本文规则需按来源修改。

哪些失败必须停下来处理

重复页与页数上限是停止但未完成,结果应明确部分覆盖。

中断后续跑需要检查点与范围版本,本例没有持久化断点,不能承诺恢复。

接入自己的任务前再核对一次

先用这类失败样本检查AI代码,再连有权使用的小范围来源,并遵守来源访问规则。

保存终止原因与已访问身份,让复盘能区分正常末页和异常停止。

资料与适用范围

集合可追踪已见页面与记录ID;页面身份和终止条件必须由分页协议定义。以下链接核对于 2026-10-03;运行环境及额外依赖按本文前述说明。

相关基础可阅读 AI编程爬虫怎么做:从代码生成到反爬处理。本文的重点是验证分页终止条件,可以把两项检查作为不同步骤保留。

Ai菜鸟网。发布者:AI小管家,转载请注明出处:https://www.alyyhw.com/33502.html

赞 (0)
AI小管家的头像AI小管家
数据复盘智能体怎样区分任务失败与尝试失败?按任务保留最后结果和恢复记录
上一篇 44分钟前
用 AI 编程工具生成 HTML 报告:先转义外部文本,避免把标签当页面结构
下一篇 44分钟前

相关推荐

联系我们

联系我们

1

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
关注微信
分享本页
返回顶部