MrScraper

通过自然语言指令实现无阻抗网页抓取与数据提取。

已扫描
适合谁
数据分析师、电商运营人员
不适合谁
无网络访问权限的环境使用者、无需外部API调用的本地脚本开发者
国内可用性
需网络配置。可能需要网络配置或第三方服务可访问。
安装难度
新手友好(★☆☆)。基于终端操作、依赖、API Key 和本地环境要求的初步判断。

安装与下载

openclaw skills install @ai-mrscraper/mrscraper

Skill 说明

命令、参数、文件名以原文为准

MrScraper

通过 MrScraper API,使用自然语言指令实现 AI 驱动、免封锁的网页抓取与数据提取。

操作功能

本技能支持以下功能:

  • 通过反封锁机制(隐蔽浏览器 + IP 轮换)访问被屏蔽的页面
  • 根据自然语言指令启动 AI 抓取任务
  • 对一个或多个 URL 重新运行已有的抓取配置
  • 手动工作流驱动的重跑操作
  • 获取分页结果及按 ID 查询的详细数据

该技能为纯 API 接口调用,不依赖本地脚本。

基础地址

  • 反封锁 API:https://api.mrscraper.com
  • 平台 API:https://api.app.mrscraper.com

认证方式

所有接口均使用头部认证:

x-api-token: <MRSCRAPER_API_TOKEN>
accept: application/json
content-type: application/json

如何获取 MRSCRAPER_API_TOKEN

API 密钥允许您的应用安全地与 MrScraper API 交互,并重跑仪表板中创建的抓取任务。

请按以下步骤在仪表板中操作:

  1. 点击右上角的 用户资料
  2. 选择 API 密钥
  3. 点击 新建密钥
  4. 输入密钥名称并设置过期时间。
  5. 点击 创建
  6. 复制新生成的密钥,并安全存储为 MRSCRAPER_API_TOKEN
  7. 在请求中通过 x-api-token 头部使用该密钥。

安全提示:

  • 严禁在客户端代码(如浏览器或移动应用包)中暴露密钥。
  • 应将密钥存放在环境变量或服务端密钥管理器中。

备注:

  • 该 API 密钥适用于所有 V3 平台接口。
  • 同一密钥可用于 sync.scraper.mrscraper.com 上的接口。
  • 若需访问其他主机的接口,请联系 support@mrscraper.com

安装与运行

  • 本技能文档无需本地安装步骤。
  • 不需要捆绑 scripts/ 目录。
  • 所有调用均为对上述两个基础地址的直接 HTTPS 请求。

数据与范围

  • 数据仅发送至 api.app.mrscraper.comapi.mrscraper.com
  • 响应可能包含提取的页面内容和抓取元数据。
  • 本技能不定义任何后台持久化或后台任务。
  • 请勿在日志、提交记录或输出中暴露密钥。

接口列表

1. 反封锁接口

  • 方法:GET
  • 地址:https://api.mrscraper.com
  • 认证:x-api-token 头部

通过隐蔽浏览和 IP 轮换打开目标网址,返回 HTML 内容。适用于因验证码或反机器人机制而无法直接访问的页面。

查询参数:

字段类型必填默认值说明
urlstring已 URL 编码的目标网址
timeoutnumber60最大等待时间(秒),例如 120
geoCodestring地理路由代码,例如 SG
blockResourcesbooleanfalse是否阻止非必要资源加载

请求示例:

curl --location 'https://api.mrscraper.com?timeout=120&geoCode=SG&url=https%3A%2F%2Fwww.lazada.sg%2Fproducts%2Fpdp-i111650098-s23209659764.html&blockResources=false' \
  -H "x-api-token: <MRSCRAPER_API_TOKEN>"

响应示例:

<!doctype html>
<html>
  <head>...</head>
  <body>...</body>
</html>

注意事项:

  • 为保证行为可重复,建议明确指定 geoCode 和合理的超时时间。
  • 仅在需要会话级内容时传递 cookies。

2. 创建 AI 抓取任务

  • 方法:POST
  • 主机:https://api.app.mrscraper.com
  • 路径:/api/v1/scrapers-ai
  • 认证:x-api-token

根据自然语言指令创建新的 AI 抓取任务。

通用参数(agent: generalagent: listing):

字段类型必填默认值说明
urlstring目标网址
messagestring数据提取指令
agentstringgeneralAI 抓取代理类型:generallistingmap
proxyCountrystring用于代理抓取的 ISO 国家代码

map 代理专用参数:

字段类型必填默认值说明
urlstring目标网址
agentstringmap代理类型,此处固定为 map
maxDepthnumber2最大爬取深度。<br>0 = 仅起始页面,1 = 加上直接链接
maxPagesnumber50整个爬取过程中最多抓取的页面数
limitnumber1000所有页面中最多提取的数据记录数。达到上限后停止抓取
includePatternsstring""正则模式,用于包含特定路径(多个用 `\
excludePatternsstring""正则模式,用于排除特定路径(多个用 `\

请求示例:

curl -X POST "https://api.app.mrscraper.com/api/v1/scrapers-ai" \
  -H "x-api-token: <MRSCRAPER_API_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://books.toscrape.com/catalogue/a-light-in-the-attic_1000/index.html",
    "message": "提取标题、价格、库存和评分",
    "agent": "general"
  }'

响应示例:

{
  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  "createdAt": "2019-08-24T14:15:22Z",
  "createdById": "e13e432a-5323-4484-a91d-b5969bc564d9",
  "updatedAt": "2019-08-24T14:15:22Z",
  "updatedById": "d8bc6076-4141-4a88-80b9-0eb31643066f",
  "deletedAt": "2019-08-24T14:15:22Z",
  "deletedById": "8ef578ad-7f1e-4656-b48b-b1b4a9aaa1cb",
  "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b",
  "scraperId": "6695bf87-aaa6-46b0-b1ee-88586b222b0b",
  "type": "AI",
  "url": "http://example.com",
  "status": "Finished",
  "error": "string",
  "tokenUsage": 0,
  "runtime": 0,
  "data": {}, // 主要抓取数据
  "htmlPath": "string",
  "recordingPath": "string",
  "screenshotPath": "string",
  "dataPath": "string"
}

注意事项:

  • 请根据实际场景选择合适的代理类型:

- general:适用于大多数标准网页抓取任务,若未指定或 LLM 不确定页面类型时推荐使用。

- listing:适用于商品列表、职位列表等页面,当 LLM 能够准确识别为列表页时使用。

- map:用于网站级爬取,获取主域名下的所有子页面或子域。当用户指定的是网站而非具体页面时使用。

  • 对于 map 代理,可通过以下参数控制爬取行为:

- maxDepth:建议值 1–2(聚焦抓取),最大推荐 3。

- maxPages:限制总页面数,不受深度影响。

- limit:限制总数据条数。

- includePatterns / excludePatterns:使用正则表达式(以 \|\| 分隔)指定包含或排除的路径,例如 */products/*||*/blog/**/cart/*||*.pdf

- 若 includePatterns 为空,则默认包含所有路径;若 excludePatterns 为空,则不排除任何路径。

3. 重跑 AI 抓取任务

  • 方法:POST
  • 主机:https://api.app.mrscraper.com
  • 路径:/api/v1/scrapers-ai-rerun
  • 认证:x-api-token

基于已有抓取配置,在新 URL 上重新执行。

请求参数:

字段类型必填默认值说明
scraperIdstring从创建的 AI 抓取任务中获取的 ID
urlstring目标网址

map 代理可选参数:

字段类型必填默认值说明
maxDepthnumber2爬取深度
maxPagesnumber50最多爬取页面数
limitnumber1000结果数量上限
includePatternsstring""包含路径的正则模式(用 `\
excludePatternsstring""排除路径的正则模式(用 `\

请求示例:

curl -X POST "https://api.app.mrscraper.com/api/v1/scrapers-ai-rerun" \
  -H "accept: application/json" \
  -H "x-api-token: <MRSCRAPER_API_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{
    "scraperId": "6695bf87-aaa6-46b0-b1ee-88586b222b0b",
    "url": "https://shopee.sg/"
  }'

响应示例:

{
  "message": "Successful operation!",
  "data": {
    "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    "createdAt": "2019-08-24T14:15:22Z",
    "createdById": "e13e432a-5323-4484-a91d-b5969bc564d9",
    "updatedAt": "2019-08-24T14:15:22Z",
    "updatedById": "d8bc6076-4141-4a88-80b9-0eb31643066f",
    "deletedAt": "2019-08-24T14:15:22Z",
    "deletedById": "8ef578ad-7f1e-4656-b48b-b1b4a9aaa1cb",
    "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b",
    "scraperId": "6695bf87-aaa6-46b0-b1ee-88586b222b0b",
    "type": "Rerun-AI",
    "url": "http://example.com",
    "status": "Finished",
    "error": "string",
    "tokenUsage": 0,
    "runtime": 0,
    "data": {}, // 主要抓取数据
    "htmlPath": "string",
    "recordingPath": "string",
    "screenshotPath": "string",
    "dataPath": "string",
    "htmlContent": "string"
  }
}

4. 批量重跑 AI 抓取任务

  • 方法:POST
  • 主机:https://api.app.mrscraper.com
  • 路径:/api/v1/scrapers-ai-rerun/bulk
  • 认证:x-api-token

在一个抓取配置下,对多个 URL 执行重跑。

请求参数:

字段类型必填默认值说明
scraperIdstring已存在的 AI 抓取配置 ID
urlsarray[string]要运行的多个目标网址

请求示例:

curl -X POST "https://api.app.mrscraper.com/api/v1/scrapers-ai-rerun/bulk" \
  -H "x-api-token: " \
  -H "Content-Type: application/json" \
  -d '{
    "scraperId": "6695bf87-aaa6-46b0-b1ee-88586b222b0b",
    "urls": [
      "https://books.toscrape.com/catalogue/a-light-in-the-attic_1000/index.html",
      "https://books.toscrape.com/catalogue/tipping-the-velvet_999/index.html",
      "https://books.toscrape.com/catalogue/soumission_998/index.html"
    ]
  }'

响应示例:

{
  "message": "Bulk rerun started successfully",
  "data": {
    "bulkResultId": "f89f8f58-3c9a-42e5-a72e-59fa6c389f09",
    "status": "Running",
    "totalUrls": 3
  }
}

5. 重跑手动抓取任务

  • 方法:POST
  • 主机:https://api.app.mrscraper.com
  • 路径:/api/v1/scrapers-manual-rerun
  • 认证:x-api-token

使用手动浏览器工作流执行重跑。

创建手动抓取任务

在调用此接口前,需先在仪表板中创建并保存一个手动抓取任务。操作步骤如下:

  1. 打开 MrScraper 仪表板,进入 Scraper
  2. 点击 新建手动抓取 +
  3. 输入目标网址。
  4. 添加与网站行为匹配的工作流步骤(如 输入点击延迟提取注入 JavaScript)。
  5. 如需处理分页,可配置 查询分页目录分页下一页链接
  6. 测试并保存抓取任务,复制其 scraperId 用于后续 API 调用。

请求参数:

字段类型必填默认值说明
scraperIdstring要重跑的手动抓取任务 ID
urlstring本次重跑的目标网址
workflowarray<object>可覆盖保存的工作流步骤。默认使用创建时保存的流程

请求示例:

curl -X POST "https://api.app.mrscraper.com/api/v1/scrapers-manual-rerun" \
  -H "accept: application/json" \
  -H "x-api-token: " \
  -H "Content-Type: application/json" \
  -d '{
    "scraperId": "6695bf87-aaa6-46b0-b1ee-88586b222b0b",
    "url": "https://books.toscrape.com/",
    "workflow": [
      {
        "type": "extract",
        "data": {
          "extraction_type": "text",
          "attribute": null,
          "name": "book",
          "selector": "h3 a"
        }
      }
    ],
    "record": false,
    "paginator": {
      "type": "query_pagination",
      "max_page": 1,
      "enabled": false
    }
  }'

响应示例:

{
  "message": "Successful operation!",
  "data": {
    "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    "createdAt": "2019-08-24T14:15:22Z",
    "createdById": "e13e432a-5323-4484-a91d-b5969bc564d9",
    "updatedAt": "2019-08-24T14:15:22Z",
    "updatedById": "d8bc6076-4141-4a88-80b9-0eb31643066f",
    "deletedAt": "2019-08-24T14:15:22Z",
    "deletedById": "8ef578ad-7f1e-4656-b48b-b1b4a9aaa1cb",
    "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b",
    "scraperId": "6695bf87-aaa6-46b0-b1ee-88586b222b0b",
    "type": "Rerun-AI",
    "url": "http://example.com",
    "status": "Finished",
    "error": "string",
    "tokenUsage": 0,
    "runtime": 0,
    "data": {},
    "htmlPath": "string",
    "recordingPath": "string",
    "screenshotPath": "string",
    "dataPath": "string",
    "htmlContent": "string"
  }
}
AM
@ai-mrscraper

已收录 1 个 Skill

相关推荐