Token导航 LogoToken导航TokenDH.com
研究检索操作浏览器clawhub未标认证来源可访问clear审计通过

rsshub-route-generatorrsshub route 生成器

Agent Skill

rsshub-route-generator 用于查找、检索和筛选相关信息,适合在 OpenClaw 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

3,492

周安装

150

GitHub Stars

公开资料未说明

下载量

1,224
OpenClaw

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

MIT-0

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:rsshub-route-generator(rsshub route 生成器)
来源仓库:https://github.com/benzking/rsshub-route-generator
安装命令:
openclaw skills install rsshub-route-generator
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 OpenClaw 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

ClawHubOpenClaw
openclaw skills install rsshub-route-generator

简介

分析任意网站结构,自动生成符合 RSSHub 规范的路由 TypeScript 代码及栏目和文章选择器配置。

SKILL.md

RSSHub 路由生成器

深度分析网站结构,生成 RSSHub 路由代码

技能描述

本技能用于分析任意网站结构,并生成符合 RSSHub 规范的路由代码文件。生成的路由支持:

  • 栏目列表 RSS
  • 全文 RSS(可选)
  • RSSHub Radar 规则

触发词

当用户发送以下内容时激活本技能:

  • "生成 RSSHub 路由"
  • "帮我创建 RSS"
  • "为网站生成 RSS 订阅"
  • "制作 RSSHub 路由"
  • "生成 RSS 路由"
  • 任意网站 URL(将自动检测并询问是否需要生成 RSSHub 路由)

执行逻辑

第一步:网站深度分析

  1. 页面结构探测

- 使用 web_fetch 获取页面 HTML 内容 - 识别文章列表容器(常见选择器:uldiv.listdiv.news-listarticle) - 识别标题元素(h1-h6adiv.title) - 识别日期元素(timespan.date[datetime]) - 识别分类标签(span.categorya.tag

  1. 栏目识别

- 扫描导航菜单中的栏目链接 - 识别侧边栏分类 - 识别面包屑导航

  1. 链接模式分析

- 分析内链路径模式(如 /news/2024/01/xxx.html) - 识别分页结构 - 确定详情页 URL 格式

第二步:RSSHub 路由生成

根据分析结果生成 TypeScript 代码文件,遵循以下规范:

import { Route } from '@/types';
import got from '@/utils/got';
import { load } from 'cheerio';
import { parseDate } from '@/utils/parse-date';

export const route: Route = {
    path: '/{category}',
    categories: ['{category}'],
    example: '/{site}/{category}',
    parameters: {
        category: '分类名称,默认为 all',
    },
    features: {
        requireConfig: false,
        requirePuppeteer: false,
        antiCrawler: false,
        supportBT: false,
        supportPodcast: false,
        supportScihub: false,
    },
    radar: [
        {
            source: ['{domain}/'],
            target: '/{category}',
        },
    ],
    name: '{网站名称}',
    maintainers: [],
    handler,
    url: '{domain}',
    description: `{网站描述}`,
};

async function handler(ctx) {
    const category = ctx.req.param('category') || 'all';
    const baseUrl = '{website_url}';
    
    // 构建请求 URL
    const url = category === 'all' 
        ? `${baseUrl}/` 
        : `${baseUrl}/${category}/`;
    
    // 获取页面内容
    const response = await got({ method: 'get', url });
    const $ = load(response.data);
    
    // 解析文章列表
    const items = $('{list_selector}').map((_, element) => {
        const $el = $(element);
        return {
            title: $el.find('{title_selector}').text().trim(),
            link: new URL($el.find('{link_selector}').attr('href'), baseUrl).href,
            pubDate: parseDate($el.find('{date_selector}').text().trim(), 'YYYY-MM-DD'),
            category: $el.find('{category_selector}').text().trim(),
        };
    }).get();
    
    // 获取全文内容(可选)
    const fulltextItems = await Promise.all(
        items.slice(0, 10).map(async (item) => {
            try {
                const detailResponse = await got({ method: 'get', url: item.link });
                const detail$ = load(detailResponse.data);
                item.description = detail$('{content_selector}').html();
                return item;
            } catch {
                return item;
            }
        })
    );
    
    return {
        title: '{website_title}',
        link: baseUrl,
        description: '{website_description}',
        item: fulltextItems,
        language: 'zh-cn',
    };
}

第三步:文件输出

生成的路由文件保存到工作目录,命名格式:

  • 主路由:rsshub-routes/{domain}/{route-name}.ts
  • 命名空间:rsshub-routes/{domain}/namespace.ts(如需)

输出格式

1. 网站分析报告

## 网站结构分析

### 基本信息
- 域名:{domain}
- 网站标题:{title}
- 语言:{language}

### 栏目结构
| 栏目名 | URL 模式 | 列表选择器 |
|--------|----------|-----------|
| 栏目1 | /news/ | div.news-list li |
| 栏目2 | /notice/ | ul.article-list li |

### 文章结构
- 标题选择器:{title_selector}
- 链接选择器:{link_selector}
- 日期选择器:{date_selector}
- 分类选择器:{category_selector}
- 内容选择器:{content_selector}

### 生成路由

{generated_code}

2. 路由文件

生成完整的 .ts 文件,可直接复制到 RSSHub 项目使用。

常见选择器模式参考

政府网站

// 列表项
$('ul.list li', 'div.news-list li', 'table tr')

// 标题
$('a[title]', 'h3 a', '.title a')

// 日期
$('span.date', '.time', '[datetime]')

// 内容
$('#content', '.article-content', '.main-content')

新闻网站

// 列表
$('.news-list li', '.article-list .item', 'div.container ul li')

// 正文
$('.article-body', '.content', '.post-content')

论坛社区

// 帖子列表
$('.thread-list tr', '.topic-item', '.post-list .item')

// 内容
$('.thread-content', '.post-body', '.message')

最佳实践

  1. 缓存策略:使用 ofetch 并配置合理的缓存 key
  2. 并发控制:详情页获取使用 pMap 控制并发(建议 3-5)
  3. 错误处理:每个请求都用 try-catch 包装
  4. 去重:使用 MapSet 去重
  5. 分页:支持 limit 参数,默认 20 条
  6. 全文:可选 fulltext 参数控制是否获取全文

示例工作流

用户输入:

为 https://example.com/news/ 生成 RSSHub 路由

技能执行:

  1. 访问页面,分析结构
  2. 识别栏目和列表模式
  3. 生成路由代码
  4. 输出分析报告和代码文件

适合场景

01

OpenClaw 用户查找和安装 Skill 时

02

用户想查找某类 Agent Skill 时

03

需要根据任务场景推荐可安装能力包时

04

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

补充不同宿主或平台的使用分布数据

能力 5

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

OpenClaw

72.54%
按下载量换算888

安全审计

VirusTotal

通过

ClawScan

通过

Static analysis

通过

权限和风险

操作浏览器

该 Skill 可能涉及浏览器控制能力,使用时可能读取或操作网页内容,需要在受控环境中确认权限边界。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills