介绍一个 OpenClaw 的好搭档——Scrapling 网页自动化

项目地址:https://github.com/D4Vinci/Scrapling 🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl!

OpenClaw + Scrapling 组合

大家用 OpenClaw 的一大场景就是网页自动化吧,登录个网页,抓取些信息,或者进行些操作,一般会用到这些工具:

2025 年,WIRED 和 TechStrong 都报道过 OpenClaw 用户使用 Scrapling 绕过 Cloudflare 的操作。

Scrapling 是什么项目

虽然项目早于 OpenClaw 就存在,但是最近被 OpenClaw 带火了:

以前 现在
开发者手动写爬虫脚本 AI Agent 24/7 自主运行
需要技术背景 自然语言指令即可
单次爬取 持续监控 + 批量爬取

Scrapling 提供了 skill 和 MCP Server,让 OpenClaw 可以直接用自然语言调用:

"爬取这个网站的产品列表"
→ OpenClaw 调用 Scrapling skill
→ 自动绕过 Cloudflare
→ 返回结构化 JSON

先简单介绍下反爬机制与绕过原理

常见反爬层级

第一层:HTTP 检测
├── User-Agent
├── Referer
├── Cookie/Session
└── IP 频率限制

第二层:浏览器指纹
├── navigator.webdriver
├── WebGL 指纹
├── Canvas 指纹
└── 字体/屏幕分辨率

第三层:行为分析
├── 鼠标轨迹
├── 点击间隔
└── 滚动行为

第四层:挑战验证
├── CAPTCHA
├── Cloudflare Turnstile
└── JS 计算挑战

Scrapling 绕过方式

1. 真实浏览器引擎

基于 Playwright,使用真实 Chromium:

2. 隐藏自动化特征

# 自动注入修复:
# - navigator.webdriver = undefined
# - 补充 WebGL 渲染器信息
# - 修复 CDP 检测
# - 模拟正常 plugins

3. 模拟人类行为

4. 处理 Turnstile

为什么爬虫没法完全封锁

核心矛盾:

封太严 → 误伤真实用户 → 客户流失
封太松 → 爬虫泛滥 → 客户不满

误伤代价 » 放过爬虫

检测手段 Cloudflare 困境
navigator.webdriver 隐私浏览器用户也有
WebGL 指纹 设备差异大,误判率高
鼠标轨迹 残障用户辅助工具异常
IP 限制 企业内网共享 IP

结论:真实环境难以 100% 区分自动化和真人。


Scrapling 核心架构

Scrapling 有三大核心组件:Fetchers(获取网页)、Parser(自适应解析)、Spiders(爬虫框架)

┌─────────────────────────────────────────────────────┐
│                    Scrapling                         │
├─────────────────┬─────────────────┬─────────────────┤
│   Fetchers      │     Parser      │     Spiders     │
│   (获取网页)     │   (自适应解析)   │   (爬虫框架)    │
├─────────────────┼─────────────────┼─────────────────┤
│ • Fetcher       │ • 自适应定位     │ • 并发控制      │
│ • AsyncFetcher  │ • 网站改版存活   │ • 暂停/恢复     │
│ • StealthyFetcher│ • auto_save     │ • 代理轮换      │
│ • DynamicFetcher│ • adaptive=True │ • 流式输出      │
└─────────────────┴─────────────────┴─────────────────┘
                          │
                    ┌─────┴─────┐
                    │ skill     │
                    │ (AI 集成)  │
                    └───────────┘

Fetchers - 获取网页

Fetcher 用途 底层技术
Fetcher 基础 HTTP 请求,快速轻量 requests/httpx
AsyncFetcher 异步高并发 httpx
StealthyFetcher 隐身浏览器,自动绕过反爬 Playwright + 指纹伪装
DynamicFetcher JS 渲染页面 Playwright

基本用法:

from scrapling.fetchers import StealthyFetcher

page = StealthyFetcher.fetch(
    'https://example.com',
    headless=True,
    solve_cloudflare=True,
    network_idle=True,
    timeout=30000,
)

# CSS 选择器提取
title = page.css('h1::text').get()
links = page.css('a::attr(href)').getall()

Parser - 自适应解析(核心创新)

Scrapling 的解析器能从网站变化中学习,自动重新定位元素。

原理: 记录元素的多种特征(文本内容、位置、属性、DOM 结构),网站变化时通过相似度匹配重新定位。

# 首次爬取,保存元素特征
products = page.css('.product', auto_save=True)

# 网站改版后,自动找到相同语义的元素
products = page.css('.product', adaptive=True)

特性:

Spiders - 爬虫框架

类似 Scrapy 的完整爬虫框架,支持大规模爬取。

from scrapling.spiders import Spider, Response

class MySpider(Spider):
    name = "demo"
    start_urls = ["https://example.com/"]
    
    # 并发控制
    concurrency = 10
    download_delay = 1  # 秒
    
    async def parse(self, response: Response):
        for item in response.css('.product'):
            yield {"title": item.css('h2::text').get()}

# 启动爬虫
MySpider().start()

特性:

Skill/MCP Server - AI 集成

让 OpenClaw 等 AI Agent 用自然语言调用爬虫能力。


展望

当前互联网数据访问规则建立在"爬虫可识别"假设上,当 AI Agent 像真人一样浏览,假设被打破。

未来会怎样?可能有三条路:

  1. 升级反爬系统:持续对抗,投入资源在识别真人与 Agent 的战争中
  2. 接受现实:承认 Agent 与真人已无法区分,页面 API 化转型服务 Agent
  3. 法律监管:国家出台法规,要求 Agent 与用户实名认证绑定,企业允许 Agent 有节制访问

参考