调用 / Invoke / 呼び出し
中文
-
"用 x-ai-digest 抓取今天的 AI 热点"
-
"用 x-ai-digest 生成昨天的 X 平台 AI 简报"
-
"x-ai-digest 帮我看看前天 X 上有什么 AI 相关动态"
-
"用 x-ai-digest 整理最近的 AI 推文并给出回复建议"
English
-
"Use x-ai-digest to scrape today's AI hot topics from X"
-
"Use x-ai-digest to summarize AI posts from yesterday in English"
-
"Generate an X platform AI digest for 2026-01-20 using x-ai-digest"
-
"Use x-ai-digest to compile recent AI tweets with reply suggestions"
日本語
-
"x-ai-digest で今日のAI関連投稿を日本語で要約して"
-
"x-ai-digest で昨日のXプラットフォームのAI動向を取得して"
-
"x-ai-digest を使って最近のAI関連ツイートをまとめて"
-
"x-ai-digest で一昨日のAI投稿を収集して返信提案を作成して"
目标
从 X 平台主页的「为你推荐」栏目抓取指定日期的 AI 相关信息,生成结构化的每日简报:
-
交付物:1 份 Markdown 简报 + 1 份 JSON 原始数据 + 1 张公众号分享图片
-
每条帖子:时间、作者、内容、原文链接
-
简报内容:热点话题汇总、产品发布、精选帖子、回复建议
-
分享图片:卡片式设计,包含今日热点摘要,适合公众号/朋友圈分享
-
默认输出:中文(英文/日文内容需翻译)
前置条件
dev-browser skill 已安装并运行
-
需要使用浏览器扩展模式连接到已登录 X 的浏览器
-
启动命令:cd skills/dev-browser && npm run start-extension
X 账号已登录
-
用户需要在 Chrome 浏览器中登录 X 账号
-
确保能访问「为你推荐」栏目
输入(先问清)
参数 说明 默认值
日期 抓取哪天的数据 今天 (YYYY-MM-DD)
数量范围 目标帖子数量 50-100 条
输出目录 简报保存位置 当前工作目录
是否生成回复 是否为精选帖子生成回复建议 是
流程
第一步:连接浏览器并访问 X 主页
// 使用 dev-browser 连接已登录的浏览器 const client = await connect(); const page = await client.page("x-home", { viewport: { width: 1920, height: 1080 } });
// 访问 X 主页 await page.goto("https://x.com/home"); await waitForPageLoad(page);
// 切换到「为你推荐」标签 await page.click('text=为你推荐'); await page.waitForTimeout(3000);
第二步:滚动抓取帖子
循环滚动页面,提取每条帖子的:
-
tweetId
-
帖子唯一 ID
-
tweetUrl
-
datetime
-
ISO 8601 格式的发布时间
-
username
-
用户名
-
displayName
-
显示名称
-
content
-
帖子内容
详细实现见 references/scraping-guide.md
第三步:时间筛选
将 UTC 时间转换为北京时间 (UTC+8) 进行筛选:
// 北京时间 YYYY-MM-DD 对应的 UTC 时间范围
// 北京时间 00:00:00 = UTC 前一天 16:00:00
// 北京时间 23:59:59 = UTC 当天 15:59:59
const startUTC = new Date(${date.slice(0, 4)}-${date.slice(5, 7)}-${parseInt(date.slice(8, 10)) - 1}T16:00:00.000Z);
const endUTC = new Date(${date}T15:59:59.999Z);
第四步:去重与数量控制
-
使用 tweetId 去重
-
累计到 50 条时可以停止,最多抓取 100 条
-
如果滚动多次仍未达到 50 条,则以实际数量为准
-
连续 10 次滚动无新数据时停止
第五步:筛选 AI 相关内容
使用关键词匹配筛选 AI 相关帖子,关键词列表见 references/ai-keywords.md
第六步:生成简报
使用模板 assets/digest-template.md 生成简报,包含:
-
今日热点话题
-
重要产品/功能发布
-
行业观察
-
精选帖子及回复建议
-
值得关注的账号
回复建议规则:
-
使用帖子原文语言生成回复
-
非中文帖子需附中文说明
-
回复内容要有价值,避免空洞夸赞
第七步:生成公众号分享图片
基于 assets/share-card-template.html 生成分享卡片:
-
生成 HTML 文件:根据今日热点填充模板
-
截图生成 PNG:使用 playwright 截取 .card 元素
import { chromium } from "playwright";
const browser = await chromium.launch({ headless: true }); const page = await browser.newPage({ viewport: { width: 900, height: 1800 } });
await page.goto(file://${htmlPath});
await page.waitForTimeout(2000);
// 只截取 .card 元素,不要背景
const card = await page.$('.card');
await card.screenshot({
path: ${outputDir}/ai-digest-${date}.png,
type: "png"
});
await browser.close();
卡片内容包含:
-
标题和日期
-
今日 3-4 个热点话题摘要
-
统计数据(帖子数、话题数、产品发布数)
-
数据来源标注
护栏
-
只抓取公开可见的帖子,不尝试绑定登录或绕过限制
-
滚动间隔 >= 1 秒,避免触发反爬机制
-
如遇网络错误或页面异常,降级输出已抓取的数据
-
输出文件前确认路径,避免覆盖已有文件
-
翻译时保留原文链接,确保可追溯
输出示例
文件结构
{output_dir}/ ├── x-posts-{date}.json # 原始数据 ├── x-posts-{date}.md # 帖子列表表格 ├── AI简报-{date}.md # 完整简报 └── ai-digest-{date}.png # 公众号分享图片
简报结构
AI 每日简报 | {date}
一、今日热点话题
🔥 话题1
🆕 话题2
...
二、精选帖子及回复建议
1. 作者 - 话题
原文:... 链接:... 建议回复(语言):... 中文说明:...(如非中文)
三、今日金句
...
四、值得关注的账号
...
资源
-
抓取实现指南:references/scraping-guide.md
-
AI 关键词列表:references/ai-keywords.md
-
简报模板:assets/digest-template.md
-
分享卡片模板:assets/share-card-template.html
-
分享卡片生成指南:references/share-card-guide.md