Ot Aiops
支持多协议工业设备数据采集与智能诊断,具备高风险写入防护机制。
通过自然语言指令实现无阻抗网页抓取与数据提取。
openclaw skills install @ai-mrscraper/mrscraper命令、参数、文件名以原文为准
通过 MrScraper API 使用人工智能驱动的、不受限的网页抓取与数据提取,支持自然语言指令。
此技能支持:
该技能为纯 API 接口,不依赖内置本地脚本。
https://api.mrscraper.comhttps://api.app.mrscraper.com在反封锁端点使用查询参数认证:
token=<MRSCRAPER_API_TOKEN>在平台端点使用头部认证:
x-api-token: <MRSCRAPER_API_TOKEN>
accept: application/json
content-type: application/jsonMRSCRAPER_API_TOKEN?API 密钥允许您的应用程序安全地与 MrScraper API 交互,并重新运行仪表板中创建的抓取任务。
请按以下步骤在仪表板中操作:
MRSCRAPER_API_TOKEN。x-api-token 头部使用该密钥。安全规则:
认证文档备注:
sync.scraper.mrscraper.com 上的端点。support@mrscraper.com。scripts/ 目录。api.app.mrscraper.com 和 api.mrscraper.com。GEThttps://api.mrscraper.comtoken 查询参数通过隐身浏览和 IP 轮换打开目标网址,返回 HTML 内容。当直接访问因验证码或反机器人机制被阻止时使用。
| 字段 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
token | string | 是 | — | 反封锁令牌(MRSCRAPER_API_TOKEN) |
url | string | 是 | — | URL 编码后的目标网址 |
timeout | number | 否 | 60 | 最大等待时间(秒),例如 120 |
geoCode | string | 否 | 无 | 地理路由代码,例如 SG |
blockResources | boolean | 否 | false | 阻止非必要资源加载 |
curl --location 'https://api.mrscraper.com?token=<MRSCRAPER_API_TOKEN>&timeout=120&geoCode=SG&url=https%3A%2F%2Fwww.lazada.sg%2Fproducts%2Fpdp-i111650098-s23209659764.html&blockResources=false'<!doctype html>
<html>
<head>...</head>
<body>...</body>
</html>geoCode 并设置合理的超时时间。POSThttps://api.app.mrscraper.com/api/v1/scrapers-aix-api-token根据自然语言指令创建新的 AI 抓取任务。
agent: general 或 agent: listing 时):| 字段 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
url | string | 是 | — | 目标网址 |
message | string | 是 | — | 数据提取指令 |
agent | string | 否 | general | 用于抓取的 AI 代理类型:general、listing 或 map |
proxyCountry | string | 否 | 无 | 代理抓取使用的 ISO 国家代码 |
agent: map 时)| 字段 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
url | string | 是 | — | 目标网址 |
agent | string | 否 | map | 用于抓取的 AI 代理类型(本例中为 map) |
maxDepth | number | 否 | 2 | 从起始网址爬取链接的最大深度层级。<br>0 = 仅起始网址,1 = 加上直接链接 |
maxPages | number | 否 | 50 | 抓取过程中最多爬取的页面数量。 |
limit | number | 否 | 1000 | 跨所有页面提取的数据记录最大数量。达到此限制后抓取将停止。 |
includePatterns | string | 否 | "" | 需要包含的正则表达式模式(多个用 `\ |
excludePatterns | string | 否 | "" | 需要排除的正则表达式模式(多个用 `\ |
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 代理类型,可使用特殊参数配置抓取过程。map 代理,可使用以下特殊参数控制爬取行为:<br>maxDepth(建议值 1–2 以聚焦抓取,最大推荐值为 3),<br>maxPages(限制总爬取页面数,不受深度影响),<br>limit(限制总提取记录数),<br>includePatterns / excludePatterns(使用 || 分隔的正则表达式模式,用于指定需爬取或跳过的 URL,例如 */products/*||*/blog/* 或 */cart/*||*.pdf)。<br>若 includePatterns 为空字符串,则默认包含所有 URL;若 excludePatterns 为空字符串,则不排除任何 URL。POSThttps://api.app.mrscraper.com/api/v1/scrapers-ai-rerunx-api-token基于已有抓取配置,在新网址上重新执行抓取任务。
| 字段 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
scraperId | string | 是 | — | 从创建的 AI 抓取器中获取的抓取器 ID |
url | string | 是 | — | 目标网址 |
map 代理类型的可选参数:| 字段 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
maxDepth | number | 否 | 2 | 爬取深度 |
maxPages | number | 否 | 50 | 最多爬取页面数 |
limit | number | 否 | 1000 | 结果数量上限 |
includePatterns | string | 否 | "" | 需要包含的正则表达式模式(多个用 `\ |
excludePatterns | string | 否 | "" | 需要排除的正则表达式模式(多个用 `\ |
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/"
}'markdown
name: MrScraper
version: 1.0.4
description: 用于自动化网页抓取的 AI 与手动爬虫执行工具
summary: 提供批量重跑 AI 爬虫和手动爬虫的功能,支持多 URL 批量处理。
author: skillppc
license: MIT
tags:
- web scraping
- automation
- ai scraper
- manual scraper
- bulk run
POSThttps://api.app.mrscraper.com/api/v1/scrapers-ai-rerun/bulkx-api-token使用一个 AI 爬虫配置对多个目标 URL 进行重跑。
| 字段 | 类型 | 必填 | 默认值 | 描述 |
|---|---|---|---|---|
scraperId | string | 是 | — | 已存在的 AI 爬虫配置 ID |
urls | array[string] | 是 | — | 要执行的目标 URL 列表 |
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
}
}POSThttps://api.app.mrscraper.com/api/v1/scrapers-manual-rerunx-api-token使用手动浏览器操作流程执行一次重跑任务。
在调用手动重跑接口前,需通过仪表板创建并保存一个手动爬虫。操作步骤如下:
MrScraper 仪表板,进入 Scraper 页面。New Manual Scraper +。Input、Click、Delay、Extract、Inject JavaScript)。Query Pagination、Directory Pagination 或 Next Page Link)。scraperId 以用于后续 API 重跑。| 字段 | 类型 | 必填 | 默认值 | 描述 |
|---|---|---|---|---|
scraperId | string | 是 | — | 要重跑的手动爬虫 ID |
url | string | 是 | — | 本次重跑的目标 URL |
workflow | array<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"
}
}POSThttps://api.app.mrscraper.com/api/v1/scrapers-manual-rerun/bulkx-api-token使用一个手动爬虫配置对多个 URL 进行批量重跑。
| 字段 | 类型 | 必填 | 默认值 | 描述 |
|---|---|---|---|---|
scraperId | string | 是 | — | 已存在的手动爬虫配置 ID |
urls | array[string] | 是 | — | 要执行的目标 URL 列表 |
curl -X POST "https://api.app.mrscraper.com/api/v1/scrapers-manual-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"
]
}'
markdown
# MrScraper
## 1. 手动重新运行批量抓取任务
- 方法:`POST`
- 主机:`https://api.app.mrscraper.com`
- 路径:`/api/v1/scrapers-manual-rerun/bulk`
- 认证:`x-api-token`
启动对多个 URL 的批量重新抓取任务。
#### 请求示例:curl -X POST "https://api.app.mrscraper.com/api/v1/scrapers-manual-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
}
}
## 2. 获取抓取结果
- 方法:`GET`
- 主机:`https://api.app.mrscraper.com`
- 路径:`/api/v1/results`
- 认证:`x-api-token`
返回分页的抓取结果数据。
#### 查询参数:
| 字段 | 类型 | 必填 | 默认值 | 描述 |
|--------------------|--------|--------|--------------|--------------------------|
| `sortField` | string | 是 | `updatedAt` | 排序字段 |
| `sortOrder` | string | 是 | `DESC` | 排序方向 |
| `page` | number | 是 | 1 | 页码 |
| `pageSize` | number | 是 | 10 | 每页数量 |
| `search` | string | 否 | 无 | 搜索关键词 |
| `dateRangeColumn` | string | 否 | `createdAt` | 日期筛选字段 |
| `startAt` | string | 否 | 无 | 日期范围起始(ISO 格式) |
| `endAt` | string | 否 | 无 | 日期范围结束(ISO 格式) |
#### 说明:
- `sortField` 可选值:`createdAt`, `updatedAt`, `id`, `type`, `url`, `status`, `error`, `tokenUsage`, `runtime`
- `sortOrder` 可选值:`ASC`, `DESC`
- `dateRangeColumn` 可选值:`createdAt`, `updatedAt`
#### 请求示例:curl -X GET "https://api.app.mrscraper.com/api/v1/results?sortField=updatedAt&sortOrder=DESC&pageSize=10&page=1" \
-H "accept: application/json" \
-H "x-api-token: <MRSCRAPER_API_TOKEN>"
#### 响应示例:{
"message": "Successful fetch",
"data": [
{
"createdAt": "2025-11-11T09:50:09.722Z",
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b",
"scraperId": "6695bf87-aaa6-46b0-b1ee-88586b222b0b",
"type": "AI",
"url": "http://example.com",
"status": "Finished",
"error": "string",
"tokenUsage": 5,
"runtime": 0,
"data": "{ \"title\": \"Product A\", \"price\": \"$10\" }",
"htmlPath": "string",
"recordingPath": "string",
"screenshotPath": "string",
"dataPath": "string"
}
],
"meta": {
"page": 1,
"pageSize": 10,
"total": 1,
"totalPage": 1
}
}
## 3. 根据 ID 获取详细抓取结果
- 方法:`GET`
- 主机:`https://api.app.mrscraper.com`
- 路径:`/api/v1/results/{id}`
- 认证:`x-api-token`
根据指定的结果 ID 返回一条详细的抓取结果。
#### 查询参数:
| 字段 | 类型 | 必填 | 默认值 | 描述 |
|------|----------|------|--------|------------|
| `id` | `string` | 是 | — | 结果 ID |
#### 请求示例:curl -X GET "https://api.app.mrscraper.com/api/v1/results/497f6eca-6276-4993-bfeb-53cbbbba6f08" \
-H "accept: application/json" \
-H "x-api-token: <MRSCRAPER_API_TOKEN>"
#### 响应示例:{
"message": "Successful fetch",
"data": [
{
"createdAt": "2025-11-11T09:50:09.722Z",
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b",
"scraperId": "6695bf87-aaa6-46b0-b1ee-88586b222b0b",
"type": "AI",
"url": "http://example.com",
"status": "Finished",
"error": "string",
"tokenUsage": 5,
"runtime": 0,
"data": "string",
"htmlPath": "string",
"recordingPath": "string",
"screenshotPath": "string",
"dataPath": "string"
}
]
}
## 错误响应
平台标准 API 错误:
| 状态码 | 含义 |
|--------|--------------------------|
| `400` | 请求负载无效 |
| `401` | 缺失或无效的 API Token |
| `404` | 抓取器或结果不存在 |
| `429` | 请求频率超出限制 |
| `500` | 内部抓取错误 |
错误格式:{
"message": "string",
"error": "string",
"statusCode": "number"
}
## 操作规则
- 每次调用前验证必填字段。
- 大量结果集时使用分页。
- 遇到 `429` 错误时采用指数退避重试。
- 不在输出中暴露任何凭证信息。已收录 1 个 Skill