👍同事看了都点赞!免费的自动化 RSS 聚合推送方案

不用起服务器,不用跑定时脚本,不用定时爬网页,只需要 Amazon Lambda,和一个 webhook,就能每天早上收到最新的RSS推送啦~

这玩意看似简单,其实也很简单🤣

是的,我们今天要来干点小事儿(doge),做一个自动化 RSS 聚合推送!

起因

作为一名互联网民工,咱虽然职位不高,但关注的内容是一点都不少的:

  • GitHub Trending
  • 技术社区博主更新
  • 少数派/36kr/虎嗅精选
  • 某些小众技术博客

考虑到每天刷 RSS 太麻烦了,我寻思能不能搞个全自动的?

我想要的是:每天自动推送前一天的更新内容,然后发到企业微信中。

实现方案

我整活的技术栈:

  • Amazon Lambda:免费使用,部署简单,不用维护
  • Python :用 feedparser 解析 RSS,熟悉且轻巧
  • 企业微信 Webhook:消息推送落地方式,简单稳定
  • CloudWatch Events(EventBridge) :定时触发器,每天自动执行

你问我为什么用 Amazon Lambda?

  • 每月有 100 万次调用免费额度,且永久免费,用不完,根本用不完
  • 不用管部署,写完代码直接丢上去就完事了,非常适合这种简单的项目

那我们要怎么拿到这些免费额度呢?其实只要注册一个账号就可以了。

注册账号

先去 亚马逊云科技官网,点击右上角注册账号,关键流程如下:

  • 手机号、账单信息可以直接用国内资料填写;
  • 选择基础支持计划(无需额外开支);
  • 注册完成后等待身份验证通过,即可开始使用资源。

接下来回归我们的主线任务,继续实现我们的 RSS 聚合推送神器。

新用户可获得高达 200 美元的服务抵扣金

亚马逊云科技新用户可以免费使用亚马逊云科技免费套餐(Amazon Free Tier)。注册即可获得 100 美元的服务抵扣金,在探索关键亚马逊云科技服务时可以再额外获得最多 100 美元的服务抵扣金。使用免费计划试用亚马逊云科技服务,最长可达 6 个月,无需支付任何费用,除非您选择付费计划。付费计划允许您扩展运营并获得超过 150 项亚马逊云科技服务的访问权限。

目录结构

bash 复制代码
rss-pusher/
├── lambda_function.py   # 主逻辑
├── requirements.txt     # 依赖

代码实现

因为这个代码逻辑比较简单,所以咱就用Python来写了,方便又快捷~

python 复制代码
import datetime
import requests
import feedparser

# 企业微信 Webhook 地址
WEBHOOK_URL = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=YOUR_KEY"

# RSS 源列表
RSS_FEEDS = [
    "https://sspai.com/feed"
]

# 昨天的时间范围
today = datetime.datetime.utcnow() + datetime.timedelta(hours=8)
yesterday = today - datetime.timedelta(days=1)

def is_yesterday(published_parsed):
    if not published_parsed:
        return False
    pub_date = datetime.datetime(*published_parsed[:6])
    return yesterday.date() <= pub_date.date() < today.date()

def lambda_handler(event, context):
    updates = []

    for url in RSS_FEEDS:
        d = feedparser.parse(url)
        for entry in d.entries:
            if is_yesterday(entry.get("published_parsed")):
                updates.append(f"🔹 [{entry.title}]({entry.link})")

    if not updates:
        print("昨日无更新,继续摸鱼")
        return

    content = "\n".join(updates)
    message = {
        "msgtype": "markdown",
        "markdown": {
            "content": f"🎯 **昨日 RSS 更新(共 {len(updates)} 条)**\n\n{content}"
        }
    }

    resp = requests.post(WEBHOOK_URL, json=message)
    print("消息发送结果:", resp.status_code, resp.text)

# 方便本地调试
if __name__ == "__main__":
    lambda_handler({}, {})

依赖列表(requirements.txt)

复制代码
requests
feedparser

部署时可以打个 zip 包上传,或者用 Amazon Lambda 层(Layer)方式管理依赖。

本地调试:

sh 复制代码
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
python3 test.py

创建 Lambda 函数

我们需要把项目代码进行上传:

  1. 进入 Lambda 服务控制台,点击 "创建函数" (Create function)
  2. 选择 "从头开始创作" (Author from scratch)
  3. 函数名称 (Function name): 填写 RSS-Aggregator-Function,其实你随便填也没事。
  4. 运行时 (Runtime): 选择 Python 3.9 或更高版本。
  5. 架构 (Architecture): 保持默认的 x86_64
  6. 点击 "创建函数"

创建成功!

设置定时触发器

最后一步,我们需要让这个函数自动运行。

  1. 在 Lambda 函数页面,点击 "添加触发器" (Add trigger)
  2. 在下拉菜单中选择 EventBridge (or CloudWatch Events)
  3. 选择 "创建新规则" (Create a new rule)
  4. 规则名称 (Rule name): 填写 RSS-Hourly-Trigger,其实你随便填也没事。
  5. 计划表达式 (Schedule expression): 选择 "速率" (rate) ,然后输入 1day,表示每天执行一次。你也可以使用 Cron 表达式进行更精细的控制。
  6. 点击 "添加" (Add)

至此,整个系统已经搭建完成!

效果展示

尾声

方案优点:

  • 不需要服务器、不用起定时任务
  • 全自动、稳定、高扩展性(你可以自己改成 Telegram、钉钉、邮箱)
  • 免费使用,无需维护

需要注意的是,有些RSS源不规范,最好先在本地进行调试下,没问题了再部署上去。

如果你也想过"每天自动看资讯",又懒得手动刷RSS的话,不如试试这个自动化组合拳。

技术活干得漂亮,推送内容也能顺便炫一波,岂不美哉?

友情提示:如果用完了之后不再需要使用服务的话,记得要在控制台关闭服务,以防超过免费额度产生扣费

相关推荐
颜酱18 分钟前
# 02 | 搭骨架:用 LangGraph 编排 12 步工作流(思路)
前端·人工智能·后端
颜酱19 分钟前
02 | 搭骨架:用 LangGraph 编排 12 步工作流
前端·人工智能·后端
嘉伟桑1 小时前
Python调用电价API返回JSON示例:分时电价、现货电价和字段解析
后端
武子康2 小时前
Shippy:确定性工具、会话级 Sandbox 与 Live-Data Eval(4 类收敛 + 7 步实现方案 + 6 类评测指标)
前端·人工智能·后端
我叫黑大帅2 小时前
我为什么单一消费者的场景下,要用 Redis List 当消息队列?
redis·后端·面试
AskHarries2 小时前
文件上传系统
后端
止语Lab3 小时前
好的 DX 不等于少写代码——三种语言的摩擦力设计课
后端
吃饱了得干活3 小时前
别再手动解析 LLM 输出了!LangChain 四种结构化输出方案对比
后端·python·langchain
程序员天天困3 小时前
Arthas trace 命令怎么用?一行定位最慢那行代码
jvm·后端
Huiturn3 小时前
GPT 5.6 连续编码 10 小时,纯 Python 啃下 Word 二进制格式——doc2docx 实现拆解
后端