Install
openclaw skills install @thcjp/web-crawler-engine-freeopenclaw skills install @thcjp/web-crawler-engine-free在信息快速流转的今天,将重要的网页内容与社区讨论归档到本地、建立可搜索的知识库,是避免信息丢失、提升检索效率的关键。本引擎将数据抓取与归档流程整理为结构化指南,帮助你在数分钟内完成数据采集与检索。
免费版聚焦于日常使用最高频的四大能力:网页内容抓取、社区消息归档、本地全文搜索、数据新鲜度检查。
提供结构化的网页内容抓取模板,支持 HTML 解析、文本提取、链接发现。
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| input | string | 是 | 网页抓取引擎(免费版)处理的输入数据或指令 |
| options | object | 否 | 附加配置选项,如模式选择、格式偏好等 |
| callback_url | string | 否 | 异步处理完成后的回调通知URL |
# 抓取网页并提取正文
curl -s "https://example.com/article" | \
python -c "
import sys, html.parser
class TextExtractor(html.parser.HTMLParser):
def __init__(self):
super().__init__()
self.text = []
self.skip = False
def handle_starttag(self, tag, attrs):
if tag in ('script', 'style'): self.skip = True
def handle_endtag(self, tag):
if tag in ('script', 'style'): self.skip = False
def handle_data(self, data):
if not self.skip: self.text.append(data.strip())
p = TextExtractor()
p.feed(sys.stdin.read())
print(' '.join(t for t in p.text if t))
"
输入: 用户提供能力一:网页内容抓取所需的指令和必要参数。 处理: 解析能力一:网页内容抓取的输入参数,完成核心逻辑,返回结构化响应。 输出: 返回能力一:网页内容抓取的响应数据,包含状态码、结果和日志。
input_params参数,支持创建/查询/导出操作将社区频道(如 Discord、Slack)的消息归档到本地数据库,建立可检索的历史记录。
| 归档维度 | 说明 | 存储字段 |
|---|---|---|
| 消息内容 | 正文与附件 URL | content, attachments |
| 发送者 | 用户名与 ID | author, author_id |
| 时间戳 | 发送时间与编辑时间 | timestamp, edited_at |
| 频道信息 | 频道名与 ID | channel, channel_id |
| 回复关系 | 被回复消息 ID | reply_to |
输入: 用户提供能力二:社区消息归档所需的指令和必要参数。 处理: 解析能力二:社区消息归档的输入参数,完成核心逻辑,返回结构化响应。 输出: 返回能力二:社区消息归档的响应数据,包含状态码、结果和日志。
基于 SQLite FTS5 建立全文索引,支持快速关键词检索与高亮显示。
# 已知限制
search --limit 20 "关键词"
# ...
# 按频道与时间范围搜索
messages --channel '#tech-news' --days 7
# ...
# 查看最近私信
dms --last 20
输入: 用户提供能力三:本地全文搜索所需的指令和必要参数。 处理: 解析能力三:本地全文搜索的输入参数,完成核心逻辑,返回结构化响应。 输出: 返回能力三:本地全文搜索的响应数据,包含状态码、结果和日志。
input_params参数,支持创建/查询/导出操作在查询前检查归档数据的新鲜度,避免使用过时数据回答问题。
# 检查归档状态
status --json
# ...
# 诊断工具
doctor
# ...
# 示例
# {
# "last_sync": "2026-07-18T10:00:00Z",
# "freshness": "fresh", # fresh / stale / unknown
# "message_count": 15423,
# "channels": 12,
# "gaps": []
# }
输入: 用户提供能力四:数据新鲜度检查所需的指令和必要参数。 处理: 解析能力四:数据新鲜度检查的输入参数,完成核心逻辑,返回结构化响应。 输出: 返回能力四:数据新鲜度检查的响应数据,包含状态码、结果和日志。 能力覆盖范围:本skill的核心能力覆盖以下场景关键词:轻量级网页与社区、数据抓取工具、支持本地归档、搜索查询与新鲜度、网页抓取引擎免费、版是一套面向个人、开发者与小型团队、的数据抓取与归档、帮助用户高效采集、网页内容与社区消、息并建立本地可搜、索的归档库、核心能力、提供网页内容抓取、社区频道消息归档、查询接口、Use、when、需要数据库操作、数据存储管理时使、不适用于数据库架、构设计决策等。这些关键词对应description中声明的使用场景,均已在上述能力点中提供对应的操作支持。
input_params参数,支持创建/查询/导出操作开发者将常参考的技术文档、博客文章抓取到本地,断网时也可查阅。
将技术社区的优质讨论归档,使用全文搜索快速查找历史解决方案。
研究人员批量采集特定主题的网页内容,建立本地研究语料库。
典型提问模板:
我想抓取某个技术博客的全部文章并归档到本地,如何实现?
归档的社区消息如何按关键词搜索并限定时间范围?
如何检查我的归档数据是否是最新的?
Agent 会根据问题匹配对应知识条目,输出包含操作步骤、命令模板、注意事项的完整回答。
-- 归档消息表
CREATE TABLE messages (
id TEXT PRIMARY KEY,
channel_id TEXT NOT NULL,
channel_name TEXT,
author_id TEXT NOT NULL,
author_name TEXT,
content TEXT,
attachments TEXT, -- JSON 数组
timestamp DATETIME NOT NULL,
edited_at DATETIME,
reply_to TEXT
);
# ...
-- 全文搜索索引
CREATE VIRTUAL TABLE messages_fts USING fts5(
content, author_name, channel_name,
content='messages',
content_rowid='rowid'
);
# ...
-- 频道元数据
CREATE TABLE channels (
channel_id TEXT PRIMARY KEY,
channel_name TEXT NOT NULL,
last_synced DATETIME,
message_count INTEGER DEFAULT 0
);
# 新鲜度检查策略
freshness:
stale_threshold_hours: 24 # 超过24小时标记为stale
auto_sync: false # 免费版不自动同步
sync_on_query: false # 查询时不自动触发同步
# ...
search:
default_limit: 20 # 默认返回结果数
max_limit: 100 # 单次最大结果数
highlight: true # 关键词高亮
回答时效性问题时,先检查归档新鲜度。数据过时时提示用户手动同步或直接查询在线源。
无限制的查询会消耗大量内存与时间,默认限制 20 条,按需调整上限。
归档数据应视为只读,避免误操作修改或删除。需要修改时使用 --unsafe --confirm 并经过人工审核。
归档中可能包含用户私信等敏感信息,导出快照时务必排除敏感内容与用户凭据。
设置保留策略,定期清理超过保留期限的归档数据,控制存储空间增长。
遵守网站的 robots.txt 与服务条款,设置合理的请求间隔(建议 1-3 秒),使用 User-Agent 标识身份。高频抓取应使用官方 API 而非网页爬取。
检查 FTS 索引是否已正确创建并同步。使用 doctor 命令诊断索引状态,必要时重建索引。
对历史数据设置保留期限,过期数据归档到压缩文件后从主库删除。附件 URL 仅存储链接不下载文件。
使用 --channel 参数指定频道,避免全量同步消耗过多时间与带宽。
表示从未同步过该数据源。首次使用需手动执行同步命令建立基线数据。
| 依赖项 | 类型 | 是否必需 | 获取方式 |
|---|---|---|---|
| LLM API | API | 必需 | 由Agent平台内置LLM提供 |
| SQLite | 数据库 | 必需 | Python 内置 sqlite3 模块 |
| curl / HTTP 客户端 | 工具 | 推荐 | 系统自带或安装 |
| Python 3.8+ | 运行时 | 推荐 | 官方网站下载 |
本免费体验版限制以下高级功能:
解锁全部功能请使用专业版:web-crawler-engine-pro
| 错误场景 | 原因 | 处理方式 |
|---|---|---|
| 配置错误 | 参数缺失或格式错误 | 检查依赖说明中的配置要求 |
| 运行时错误 | 运行环境不满足 | 确认运行环境符合依赖说明 |
| 网络错误 | 连接超时或不可达 | 执行ping命令测试网络连通性,检查防火墙和代理设置连接后执行ping命令测试网络连通性,检查防火墙和代理设置连接后重新执行命令,参考国内替代方案 |
输入:用户提供操作指令和必要参数
输出:返回执行结果,包含操作状态和输出数据
用户: 执行核心功能
Skill: 正在执行核心功能...
Skill: 执行完成,结果如下: 操作成功
{
"success": true,
"data": {
"result": "网页抓取引擎(免费版)处理结果",
"execution_time": "0.5s",
"metadata": {
"version": "1.0",
"processor": "web crawler engine"
}
},
"execution_log": ["解析输入参数", "执行核心处理", "格式化输出结果"],
"error": null
}