一、反爬不该再写成补丁工程
做咨询头些年,客户问的是“能不能把这个数抓下来”;做工程后些年,客户问的是“为什么昨晚又断了”;最近几年,客户问的变成“智能体能不能自己把网页变成可用数据”。三句话,正好是网页数据获取的三十年:从能抓,到稳抓,再到可治理地抓。
Scrapling 不算革命,但它把过去散落在 requests、Playwright、Scrapy、各种打补丁反爬脚本里的东西,收进一个有条理的框架里。对同行来说,值得看的不是“又出一个爬虫库”,而是它如何处理两个老问题:网站会改版,防护会变厚。
早年做数据采集,反爬是“哪里漏补哪里”:TLS 指纹不对,换 curl_cffi;浏览器被识别,换 stealth 启动参数;弹 Cloudflare,手动等挑战或接打码;代理被封,自己写轮换。项目上线时看起来齐整,三个月后就是一地中间件。
Scrapling 的取数层分成三档,思路比堆功能更重要:
Fetcher:纯 HTTP,做 TLS 指纹仿冒、头部、HTTP/3,适合静态页和高吞吐。代价是不执行 JS。
StealthyFetcher:基于 Patchright/Chromium 的隐身浏览器,处理 Cloudflare Turnstile、Interstitial 等挑战,做指纹伪装、会话保持;官方文档还提供 DNS-over-HTTPS、WebRTC 防泄漏、广告/追踪域名拦截等开关。
DynamicFetcher:完整 Playwright 浏览器,跑 SPA、等网络空闲、做脚本注入;不追求隐身,追求把动态页渲染出来。
对工程负责人的价值不在“能绕过”,而在“按风险升级”。静态页不启动浏览器,省资源;JS 页用动态;触发 WAF 再升隐身。我们给客户做采集架构时,最怕所有请求都开无头浏览器——能抓是能抓,成本和稳定性会先垮。Scrapling 把这条升级路径做成可配置,而不是写成特例。
Cloudflare 这块要说清边界:官方称 StealthyFetcher 可自动处理 Turnstile/Interstitial, 但生产环境仍要看目标站风控等级、是否有人机校验、是否需要账号上下文、是否受法律与 robots 限制。把它当“开箱绕过”是销售话术,把它当“可审计的反爬执行层”才是工程话术。
二、自适应解析:把“改版即停工”变成运维事件
长期监控类项目,真正的成本不是写第一版爬虫,而是网站改版后没人知道。CSS 类名一换,选择器全空;前端从列表改卡片,XPath 全偏移;模板重做,昨天还能跑的管道今早抛 None。
Scrapling 的解析器走的是结构指纹路线:首次用 auto_save=True 记录选中元素的特征,后续用 adaptive=True 在 DOM 变化后按相似度重新定位。 它不是大模型临时猜,也不依赖把整页丢给 LLM;而是在选择器、文本、结构、兄弟节点等信号上做相似匹配。这个区别很关键——
改版自愈如果用大模型做,灵活但不可控、贵、慢;用结构指纹做,窄但可复现、便宜、适合长期任务。
对价格监控、招标公告、监管披露、竞品库存这类“每天都要抓、网站不定期改”的场景,后者更像一个工业部件。对完全重构、信息架构本身变化的站点,仍然要人工校规则;框架只是把“小改版”从故障变成降级,不是把“重新设计”也自动化掉。
我们过去评估此类工具,标准很简单:第一,改版后能否给出命中置信度而不是硬返回值;第二,未命中能否回退到人工规则并形成新指纹;第三,历史指纹是否可版本化。Scrapling 的 auto_save/adaptive 满足前两件,第三件要自己接存储和评审流程。
三、Spider 层:智能体之前,先把爬虫当系统
单页抓取是脚本,全站抓取是系统。Scrapling 的 Spider 接近 Scrapy 的使用习惯,但把现代反爬和会话治理放进去:
并发、按域节流、下载延迟;
多 Session 按 ID 路由:列表页走 HTTP,详情/风控页走 Stealthy,SPA 走 Dynamic;
检查点暂停/恢复,Ctrl+C 后从 crawldir 续跑;
流式 spider.stream(),适合长任务和管道消费;
被阻断请求检测与重试;
内置 ProxyRotator,支持循环/自定义策略,也可按请求覆盖代理。
这三十年里见过太多“演示很顺、生产崩盘”的爬虫:没有会话复用,每次开浏览器;没有断点,节点重启全量重抓;没有代理治理,一个 IP 被封全站停;没有节流,把对方服务器当压测对象。Scrapling 把这些做成默认能力,对咨询项目意味着交付物可从“脚本”升级为“数据采集服务”。
如果接智能体,别让 Agent 直接写 selector、随机换 fetcher。更稳的拓扑是:
任务层用 Agent 做需求抽象:要哪些站、哪些字段、频率、合规边界;
策略层用规则/MCP 选 Fetcher、Session、代理、节流;
执行层用 Scrapling 跑抓取和自适应解析;
治理层做字段校验、改版告警、命中率统计、人工复审。
这也就是你们调研里说的“双通道”价值:Scrapling 本身干执行,OpenClaw 类智能体通过 Skill/MCP 干编排。 但落地时要把 MCP 当工具网关,不当黑箱——所有抓取动作可回溯、可审计、可重放,否则出了合规问题没人讲得清。
四、对 AI 数据链的真实意义
大模型应用里,网页抓取常被视为“预处理小活”,实际是质量瓶颈。原始 HTML 带导航、脚本、广告、埋点,直接喂模型,Token 浪费、噪声进上下文、还可能把网页里的提示注入一并带进去。Scrapling 的打法是在进模型前先做目标抽取:CSS/XPath/文本/正则定位,adaptive 抗改版,MCP 把结构化结果交给 Claude/Cursor 等智能体,降低 token 消耗。
这套路对 RAG、竞情监测、监管简报、内部知识库都合适。但有个工程原则要强调:自适应解析结果必须留人工样本。自动化越深,越要定期抽审——否则模型用的不是“网页数据”,而是“爬虫认为的网页数据”,错误会自我固化。
安装与最小边界:解析只装 pip install scrapling;要浏览器 fetcher 装 scrapling[fetchers] 并 playwright install Chromium;要 MCP 装 scrapling[ai] 或 scrapling[mcp,playwright]。 生产镜像用官方 Docker 更省心,长任务开 crawldir,代理与 stealth 参数按目标站分级,不要全局开最重模式。
五、给同行的最终判断
如果只偶抓几个无反爬公开页,requests+lxml 足够,不值得引入新框架。若项目符合下面任一条,Scrapling 值得进技术评估:
目标站有 Cloudflare/Turnstile 或明显 WAF,且需要长期稳定;
页面频繁改版,维护选择器的人力已经超过写爬虫的人力;
要同时跑静态、SPA、强反爬三类源,且希望统一出口;
智能体要取实时网页数据,但不能把原始 HTML 全量丢给模型;
全站爬取要求断点、并发、代理、审计,而不是一次性脚本。
它不消除反爬,也不保证改版零人工。真正有价值的是把“反爬、解析、会话、调度、Agent 接口”放到同一套抽象里,让数据采集从个人脚本变成可交接、可监控、可问责的工程资产。未来读者回看 2025—2026 这一年,网页抓取的重点不会是“更能爬”,而是“更知道什么时候该停、该升级、该让人确认”。这一点,比任何绕过率都重要。