有的人用 Amazon Lambda 跑业务,有的人用它省运维,而我------用它无成本推送 B 站热门视频,早上起床就能看到热门视频,地铁上没刷完的,还能留着上班偷偷挂后台刷会,再也不用跑到首页去找热门视频了~
新用户可获得高达 200 美元的服务抵扣金
亚马逊云科技新用户可以免费使用亚马逊云科技免费套餐(Amazon Free Tier)。注册即可获得 100 美元的服务抵扣金,在探索关键亚马逊云科技服务时可以再额外获得最多 100 美元的服务抵扣金。使用免费计划试用亚马逊云科技服务,最长可达 6 个月,无需支付任何费用。
前言:为啥要用 Lambda 干这事?
Lambda 是 Amazon 的无服务器计算服务,你写好函数,它帮你在云上跑。 最重要的是------它免费额度永久有效:
- 100 万次请求 / 月
- 40 万 GB-秒计算时间 / 月
对这种每天跑一次的任务来说,这基本等于无限。你连家里的树莓派电费都省了。
所以今天我们就用 Lambda,搞个每天早上 9 点自动推送 B 站热门视频到企业微信的机器人。
1. 注册账号 & 创建 Lambda
如果你没 Amazon 账号,先去 Amazon 官网 注册一个:
- 手机号、账单信息可以直接用国内资料填写;
- 选择基础支持计划(无需额外开支);
- 注册完成后等待身份验证通过,即可进行下一步。
登录后搜索 Lambda,点击"创建函数":
- 名称随便,比如
bilibili-hot-bot
- 运行时选 Python 3.12(Node.js 也行)
- 权限直接用默认执行角色(Amazon 会自动帮你创建)
2. 核心代码:抓 B 站热门排行榜
B 站提供官方开放接口,直接返回 JSON 数据,无需登录。 下面是 Python 版本的 Lambda 函数示例:
python
import json
import requests
def lambda_handler(event, context):
url = "https://api.bilibili.com/x/web-interface/popular?ps=5"
headers = {
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) "
"AppleWebKit/537.36 (KHTML, like Gecko) "
"Chrome/115.0.0.0 Safari/537.36"
}
try:
res = requests.get(url, headers=headers)
res.raise_for_status()
data_json = res.json()
except Exception as e:
print("请求 B 站热门排行榜失败:", e)
return
if 'data' not in data_json or 'list' not in data_json['data']:
print("返回数据格式不对:", json.dumps(data_json, indent=2, ensure_ascii=False))
return
hot_list = []
for i, item in enumerate(data_json['data']['list'], start=1):
title = item.get('title', 'No Title')
bvid = item.get('bvid', '')
link = f"https://www.bilibili.com/video/{bvid}" if bvid else 'No Link'
hot_list.append(f"{i}. {title}\n{link}")
content = "\n\n".join(hot_list)
# 本地测试
print("=== B 站热门前 5 ===")
print(content)
# 企业微信推送
send_to_wechat(content)
return {
'statusCode': 200,
'body': json.dumps('Pushed hot list!')
}
# 企业微信推送函数
def send_to_wechat(content):
webhook = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=你自己的key"
requests.post(webhook, json={
"msgtype": "text",
"text": {
"content": content
}
})
# 本地调试
if __name__ == "__main__":
lambda_handler({}, {})
3. 上传依赖
因为 Lambda 默认没 requests
,你得本地打包:
perl
mkdir package
pip install requests -t package
cp lambda_function.py package/
cd package
zip -r ../function.zip .
然后在 Lambda 控制台上传 function.zip
,保存。
4. 设置每天 9 点自动执行
最后一步,我们需要让这个函数自动运行。
- 在 Lambda 函数页面,点击 "添加触发器" (Add trigger) 。
- 在下拉菜单中选择 EventBridge (or CloudWatch Events) 。
- 选择 "创建新规则" (Create a new rule) 。
- 计划表达式 (Schedule expression): 选择 Cron 表达式
cron(0 1 * * ? *)
(注意 Amazon 用 UTC,这里 1 点就是北京时间早上 9 点) - 点击 "添加" (Add) 。
大功告成!
5. 效果展示
第二天早上 9 点,你就能在企业微信收到这样的推送:

总结
免费的就是好用,量大管饱,爽吃就完了~ 不用买服务器、不用关心运维,代码更新点保存就行。
同样的思路,你还可以推送微博热搜、掘金热榜,甚至 TG / Discord 频道内容。
云计算是别人的电脑,免费额度是别人的钱。用别人的电脑帮你干活,还不用给钱,芜湖起飞🛫🛫~
友情提示:如果用完了之后不再需要使用服务的话,记得要在控制台关闭服务,以防超过免费额度产生扣费