Skill flagged — suspicious patterns detected

ClawHub Security flagged this skill as suspicious. Review the scan results before using.

TinyScraper

v1.0.2

简单静态网站镜像爬虫。给定 URL 下载整个域名下的 HTML、JS、CSS 和静态资源到本地,支持离线浏览。

0· 86·0 current·0 all-time
by林捷@alukardo

Install

OpenClaw Prompt Flow

Install with OpenClaw

Best for remote or guided setup. Copy the exact prompt, then paste it into OpenClaw for alukardo/tiny-scraper.

Previewing Install & Setup.
Prompt PreviewInstall & Setup
Install the skill "TinyScraper" (alukardo/tiny-scraper) from ClawHub.
Skill page: https://clawhub.ai/alukardo/tiny-scraper
Keep the work scoped to this skill only.
After install, inspect the skill metadata and help me finish setup.
Use only the metadata you can verify from ClawHub; do not invent missing requirements.
Ask before making any broader environment changes.

Command Line

CLI Commands

Use the direct CLI path if you want to install manually and keep every step visible.

OpenClaw CLI

Bare skill slug

openclaw skills install tiny-scraper

ClawHub CLI

Package manager switcher

npx clawhub@latest install tiny-scraper
Security Scan
VirusTotalVirusTotal
Suspicious
View report →
OpenClawOpenClaw
Benign
medium confidence
Purpose & Capability
名称与描述(镜像静态网站)与包含的代码和测试一致:库使用 urllib/html.parser 等标准库抓取并重写静态资源、将文件写入本地镜像目录。没有请求与目的无关的外部凭据或二进制依赖。
Instruction Scope
SKILL.md 指示的行为(下载域内 HTML/静态资源、重写同域链接、提供 --dry-run)与 crawler.py 中的解析与重写逻辑一致。需要注意:SKILL.md / SPEC.md 明确写明 robots.txt 会被忽略(伦理/合法性注意),并且默认 MAX_DEPTH=-1(无限深度),可能导致大规模抓取。SKILL.md 中示例路径使用 tmp/mirrors,但实际路径会被解析到 OPENCLAW_WORKSPACE 下(见下文),这点对用户期望需要明确。
Install Mechanism
无安装规范(instruction-only / 包含纯 Python 源文件),不从外部 URL 下载或执行不明安装脚本,风险较低。源码为纯标准库实现,没有绑定到第三方包管理器或远程二进制下载。
Credentials
不要求任何显式环境变量或凭据。代码会读取可选环境变量 OPENCLAW_WORKSPACE(有默认值)并基于 conf/.tinyscraper.conf 配置 DELAY、MAX_DEPTH、TIMEOUT、MIRRORS_DIR、USER_AGENT。这些是与功能相关且比例合理,但用户应知悉输出目录默认在 OPENCLAW_WORKSPACE 下(~/.openclaw/workspace/tmp/mirrors/...),不是当前工作目录。
Persistence & Privilege
技能没有设置 always: true,也不修改其他技能或系统范围配置。它会在磁盘上创建镜像文件与日志(在 MIRRORS_DIR);这是工具正常行为且范围有限。
Assessment
TinyScraper 看起来是一个自包含的本地静态网站镜像工具: - 它不会要求 API keys 或外部凭证;网络操作仅用于抓取目标网站。 - 注意它默认忽略 robots.txt 且 MAX_DEPTH 默认为 -1(无限深度),可能导致大规模或不合规抓取;在使用前建议在 conf/.tinyscraper.conf 中设置合适的 DELAY 与 MAX_DEPTH 并先运行 --dry-run。 - 默认保存位置基于 OPENCLAW_WORKSPACE(默认为 ~/.openclaw/workspace/tmp/mirrors),如果你期望输出到当前目录请修改配置或环境变量。 - 如果担心安全或隐藏行为,可在受控环境(沙箱或容器)中先运行 test_crawler.py 和一个小型目标站点的 dry-run,并审阅完整 crawler.py(提供的文件在示例中被截断,若你需要更高置信度,要求完整未截断源码以便进一步审查)。

Like a lobster shell, security has layers — review code before you run it.

latestvk9795gtq0tbn989pdea8x1cqkn844d75
86downloads
0stars
3versions
Updated 3w ago
v1.0.2
MIT-0

TinyScraper - 静态网站镜像工具

纯 Python3 标准库,无额外依赖

📁 目录结构

TinyScraper/
├── SKILL.md
├── bin/
│   └── tinyscraper       # CLI 入口
├── lib/
│   └── crawler.py        # 核心爬虫逻辑
├── conf/
│   └── .tinyscraper.conf # 配置文件
├── assets/

├── scripts/
│   └── test_crawler.py   # 自动化测试
└── references/
    └── SPEC.md           # 格式标准文档

🎯 Skill 职责

将目标网站完整镜像到本地,包括:

  • HTML 页面(保持目录结构)
  • JS、CSS、图片、字体等静态资源
  • HTML/CSS 中的相对路径自动重写
  • 外部链接保留原值,不处理

🔖 触发场景

  • 用户要求"下载网站"、"镜像网站"、"离线保存网页"
  • 用户提供 URL 并要求"爬取整个网站"
  • 用户要求"抓取网站所有资源"

📋 执行步骤

1. 确认目标

  • 检查 URL 是否为简单静态网站(SPA / JS 驱动类网站不适合)
  • 使用 --dry-run 预览爬取范围

2. 启动爬取

tinyscraper "https://example.com"

3. 监控进度

  • 实时显示:已爬页面数、资源数、待爬队列长度
  • 失败 URL 记录到日志

4. 完成后

  • 镜像保存于:tmp/mirrors/{domain}/
  • 可用浏览器直接打开 index.html 离线浏览

⚙️ 命令详解

# 完整镜像
tinyscraper "https://example.com"

# 预览模式(只列出 URL,不下载)
tinyscraper "https://example.com" --dry-run

# 清理已下载的镜像
tinyscraper -d example.com

# 显示帮助
tinyscraper -h

📦 输出标准

目录结构

tmp/mirrors/{domain}/
├── index.html
├── page/
│   └── index.html
├── assets/
│   ├── style.css
│   └── script.js
├── images/
│   └── logo.png

路径规范

URL本地路径
/index.html
/aboutabout/index.html
/page?id=1page/index.html
/style.css?v=1.2style.css(去重)
/page#section# 锚点去除,视为同一文件

资源重写规则

  • HTML 内所有同域 href/src → 相对路径
  • CSS 内所有 url() → 相对路径
  • 外部链接(其他域名)→ 保留原值不变
  • mailto:/tel:/javascript: → 保留原值不处理

日志输出

[STEP] 🌐 开始镜像: https://example.com
[STEP] 📁 保存目录: tmp/mirrors/example.com
[INFO] 保存页面: https://example.com -> .../index.html
[INFO] 保存资源: https://example.com/style.css -> .../style.css
[STEP] 爬取 (1): https://example.com/about
[INFO] 进度: 已爬 3 页面, 12 资源, 5 待爬
...
[INFO] ==================================================
[INFO] 镜像完成!
[INFO]   页面: 15
[INFO]   资源: 48
[INFO]   失败: 2
[INFO]   目录: tmp/mirrors/example.com

⚠️ 局限性

  • 仅支持简单静态网站(SPA/React/Vue 等 JS 驱动类不适用)

  • 外部域名资源(如 CDN 上的 JS)不会下载

  • 需目标网站允许爬取(robots.txt 规则被忽略)

Comments

Loading comments...