RSSHub 完全指南:从部署到优化与防护(含实战案例)

image.png

在信息爆炸的时代,RSS 依然是许多技术用户获取内容的高效方式。随着 Twitter(现已更名为 X)等平台逐渐收紧接口,RSSHub 成为一个不可或缺的工具。它是一个开源的 RSS 生成器,可以为几乎任何网站生成订阅源。本文将带你从 部署优化,再到 自动化与防护,并通过一个实战案例展示如何订阅 B站用户动态并推送到 Telegram。


一、部署 RSSHub

Docker 部署

适合有服务器或 NAS 的用户,稳定性高且可控。

1
2
3
4
5
6
7
8
9
10
version: '3'
services:
rsshub:
image: diygod/rsshub:chromium-bundled
container_name: rsshub
restart: unless-stopped
ports:
- 1200:1200
environment:
- CACHE_EXPIRE=3600

启动:

1
docker-compose up -d

访问 http://服务器IP:1200 即可。


Vercel 部署

适合没有服务器的用户,免费且快速。

  1. Fork RSSHub GitHub 仓库,选择 legacy 分支。
  2. 在 Vercel 新建项目,导入仓库,设置 Production Branch 为 legacy
  3. 点击 Deploy,等待构建完成。

完成后即可通过 https://your-rsshub.vercel.app 使用。


二、常见路由示例

  • B站用户动态:/bilibili/user/208259
  • 微博用户:/weibo/user/1195242865
  • 知乎专栏:/zhihu/zhuanlan/googlechina
  • 豆瓣小组:/douban/group/638298
  • GitHub Release:/github/release/DIYgod/RSSHub
  • Twitter 时间线(需代理):/twitter/user/DIYgod

三、优化与防护

  • 代理配置:解决 Twitter/X 等需要代理的路由。
  • 缓存优化:通过 CACHE_EXPIRE 设置缓存时间,减少 API 请求压力。
  • 自定义路由:编写个性化路由,抓取特定网站内容。
  • Cloudflare Workers:加速访问并提供防护,绑定自定义域名。

四、自动化工作流

  • GitHub Actions 定时任务:每天定时抓取 RSSHub 内容。
  • 邮箱推送:通过 SMTP 将 RSS 内容发送到邮箱。
  • Telegram 推送:利用 Bot API 将更新即时推送到手机。

五、实战案例:订阅 B站用户动态并推送到 Telegram

下面我们通过一个完整案例来演示如何将 RSSHub 与 Telegram 结合。

1. 获取 RSS 路由

假设我们要订阅 B站用户 208259 的动态:

1
https://your-rsshub.vercel.app/bilibili/user/208259

2. 创建 Telegram Bot

  • 在 Telegram 中搜索 BotFather,输入 /newbot 创建一个新 Bot。
  • 获取 Bot 的 TOKEN

3. 获取 Chat ID

  • 在 Telegram 中与 Bot 对话,发送一条消息。

  • 使用以下 API 获取 Chat ID:

    1
    https://api.telegram.org/bot<TOKEN>/getUpdates

4. 配置 GitHub Actions

.github/workflows/rss.yml 中写入:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
name: RSSHub to Telegram

on:
schedule:
- cron: '0 9 * * *' # 每天早上9点执行
workflow_dispatch:

jobs:
push:
runs-on: ubuntu-latest
steps:
- name: Fetch RSS
run: curl -s https://your-rsshub.vercel.app/bilibili/user/208259 > rss.xml

- name: Send to Telegram
run: |
curl -s -X POST https://api.telegram.org/bot${{ secrets.TG_TOKEN }}/sendDocument \
-F chat_id=${{ secrets.TG_CHAT_ID }} \
-F document=@rss.xml

5. 效果展示

每天早上 9 点,GitHub Actions 会自动抓取 B站用户动态的 RSS 内容,并通过 Telegram Bot 推送到你的手机。这样你无需打开 RSS 阅读器,就能第一时间收到更新。


六、总结

通过这个实战案例,我们完成了一个完整的工作流:

  • 部署 RSSHub(Docker/Vercel)
  • 获取路由(如 B站用户动态)
  • 自动化抓取(GitHub Actions)
  • 即时推送(Telegram Bot)

最终,你将拥有一个 高效、稳定、安全、个性化 的 RSS 系统,真正掌控自己的信息流。


RSSHub 完全指南:从部署到优化与防护(含实战案例)
https://www.202520.xyz/p/1830255184.html
作者
夜眠迟同学
发布于
2025年12月5日
许可协议