SuperAPI AI 工具集

agentcore-browser-web-scraping

数据与分析

查看项目

更新于 10-15 19:58

技能介绍

用途:在 Amazon Bedrock AgentCore Browser 上构建生产级网页抓取。它提供托管云 Chromium,无需自建爬虫集群或常驻容器,按会话计费并天然隔离。核心思路是“LLM 决策、代码执行”:模型只提供参数,通过六个固定工具操作页面,不生成任意脚本,避免注入面。

主要能力:Collector 以 Python 工作线程运行,调用 browser_session(region, profile_configuration=..., proxy_configuration=...) 启动会话,经 generate_ws_headers()(SigV4)后用 playwright chromium.connect_over_cdp(ws_url, headers) 连接。Strands Agent 使用六个固定工具:navigate、scroll_to_bottom、click_load_more、get_page_text、screenshot、extract_by_selector。extract_by_selector 用常量 JS 模板配合模型传入的 CSS 选择器,保留条目边界与属性;screenshot 返回降采样 JPEG,帮助模型区分“页面确实为空”与登录墙、验证码或 Cookie 横幅。滚动需针对 flex 布局使用 document.scrollingElement,并遍历内部溢出面板。内置 SSRF 防护:仅 HTTPS、禁止 IP 字面量、屏蔽私有网段与 IMDS,并在每次 navigate 时重新校验。

登录态:用户通过 DCV 实时视图在云浏览器中登录一次,Cookie/令牌保存到 Browser Profile 供后续抓取复用,凭据不进入对话或数据库。流程为生成一次性 URL 令牌、带 profile 启动会话、预签名实时视图流端点、嵌入 DCV Web Client,完成后先 save_browser_session_profile 再 stop_browser_session。登录墙检测采用三层:已知站点的预检门、抓取中的模型哨兵、以及用会话 Cookie 主动探测登录敏感端点,仅明确 INVALID 才使 Profile 失效。

代理与数据:start_browser_session 支持 externalProxy(服务器、端口、凭据仅以 Secrets Manager ARN 传入),未配置时回退默认出口。时间戳解析按 ISO、相对短语、采集时间兜底并标记 time_confidence="unknown",避免空值污染批次;消息 ID 用内容哈希并纳入平台原生 ID,跨运行去重。

适用场景:抓取动态、JS 渲染或懒加载页面(社交信息流、论坛、评论站);需要登录且登录态不出 AWS 的站点;页面明显有内容却返回 0 条(滚动容器或登录墙误判);云浏览器内 Google SSO 静默失败;目标站点封禁 AWS 出口 IP 需外部代理。

限制与注意:不适用于 AgentCore Browser 服务总览或会话 API 介绍。需固定 SDK 版本,boto3 需足够新以识别 profileConfiguration 与 bedrock-agentcore 服务(Lambda 自带版本过旧,需自行打包);宿主框架拥有 asyncio 循环时,同步 Playwright 须在专用工作线程运行;需同时授予 bedrock:InvokeModel 与 InvokeModelWithResponseStream,并以 browser/ 与 browser-custom/ 两种形式写入会话 ARN;模型最终输出应约束为严格契约(JSON 数组、[] 或 LOGIN_NEEDED: <host> / BLOCKED: <reason> 等类型化哨兵)并防御性解析;Profile 查找的主机名须由服务端从源 URL 推导,不得取自模型输出;登录会话与抓取会话须应用相同 enterprisePolicies。具体价格、平台支持范围等资料暂未提供。