用途
x-scraper 用于抓取 X.com(Twitter)用户的公开帖子。它能够提取帖子的文本内容、发布时间、互动指标(浏览量、点赞、转推、回复),并生成帖子的直接链接。该技能适合在用户提出“整理 @某人 最近的发言”“看看某人在 X 上说了什么”“抓取 @username 的 X.com 帖子”“获取用户最新推文”“分析 X 用户近期帖子”等请求时触发。
主要能力
- 抓取指定 X 用户的近期帖子(含回复)。
- 提取字段包括:序号、用户名、帖子 ID、发布时间(ISO 8601 格式)、帖子链接、文本内容、浏览量、点赞数、转推数、回复数。
- 互动指标以缩写形式呈现(如 K、M)。
- 输出为 JSON 文件,默认路径为 /tmp/x_{username}_posts.json。
- 提供 Cookie 转换脚本,可将 Cookie-Editor 导出的 JSON 转换为 Playwright 格式。
使用方式
基本命令:
cd .opencode/skills/x-scraper/scripts
python3 scraper.py <username> [count]
示例:
python3 scraper.py example_user 15
输出:/tmp/x_{username}_posts.json
使用前需确认环境要求:
- Python 3.11+:使用
python3 --version检查。 - Playwright:使用
python3 -c "import playwright"检查。 - Cookie 文件:使用
ls /tmp/x_cookies_pw.json检查。
若缺少任一前置条件,可参考 references/setup.md 获取详细安装与配置指南。
常用工作流:
- 首次设置:参见 references/setup.md 完成环境配置。
- 日常抓取:
python3 scraper.py <username> [count] - 自定义 Cookie 文件:
python3 scraper.py <username> [count] --cookie-file /path/to/cookies.json
可用脚本:
- scraper.py:主抓取脚本。命令为
python3 scraper.py <username> [count] [--cookie-file <path>]。抓取用户时间线(含回复),默认抓取 10 条帖子,默认 Cookie 文件为 /tmp/x_cookies_pw.json。 - convert_cookies.py:Cookie 转换脚本。命令为
python3 convert_cookies.py <input-file> [output-file]。将 Cookie-Editor JSON 转换为 Playwright 格式,首次抓取前必须执行。
参考文档:
- setup.md:完整环境设置指南(Python、Playwright、Cookie)。
- troubleshooting.md:错误诊断与解决方案。
- usage.md:详细使用示例与高级选项。
输出格式示例:
{
"index": 1,
"username": "example_user",
"postId": "1234567890123456789",
"publishTime": "2025-12-03T18:28:32.000Z",
"postLink": "https://x.com/example_user/status/1234567890123456789",
"textContent": "Post text content...",
"views": "471K",
"likes": "1.1K",
"retweets": "153",
"replies": "44"
}
关键字段:
- postLink:帖子直接 URL。
- publishTime:ISO 8601 时间戳。
- views/likes/retweets/replies:缩写形式的互动指标(K、M)。
适用场景
- 整理某位 X 用户近期的发言内容。
- 查看某人在 X 上发布的内容。
- 抓取指定用户名的 X.com 帖子。
- 获取用户最新推文。
- 分析 X 用户近期帖子。
限制
- 需要 X.com 认证 Cookie。
- Cookie 会过期(约 7 天),需要重新导出。
- 可能受到速率限制。
- 无法访问私密/受保护账号。